2016-07-24 5 views
0

設定ファイルと呼ばれているルートへの相対パスとオーバーライドexpress.staticをレンダリングします。このようなディレクトリツリーsordaで: app_dir --app.js --public ----stylesheets ------mystyles.css --views ----page.html ----templates ------page_template.html Nunjucksは、次のような問題に優雅な解決策を把握しようとするノード</p> <p>とNunjucksを使用

  1. が私の公開ディレクトリ内のCSSのような静的ファイルをお持ちの app.use(express.static(path.join(__dirname, 'public')));
  2. は、ビューとして設定Nunjucksのルートディレクトリを持って nunjucks.configure('views', { autoescape: true, express : app, watch: true });

  3. 私はpage_template.htmlの中からcssファイルを参照すると、nunjucks(私は思う)はルートに基づいて自動的に相対パスを作成し、静的な振る舞いを上書きします。例えば

私はpage_template.htmlに/stylesheets/mystyles.cssパスを使用しますが、 /:publication/:pageパスを使用して、それを拡張したファイルを呼び出すときに、レンダリングされたHTMLは、私は常に相対的な作成迅速なハックを書くことができます/:publication/:page/stylesheets/mystyle.css

です経路に基づいてCSSや他のリソースへのパスが、それは特に優雅なソリューション:(感謝任意の助けのように感じることはありません。

答えて

1

私はpage_templa内からCSSファイルを参照していますte.html、nunjucks(私は思う)は、ルートに基づいて自動的に相対パスを作成し、静的な動作をオーバーライドします。

私は間違いだと思います。 Nunjucksはパスを生成しません。
任意のフォルダ(viewview/templatesなど)のテンプレートでは、public dirがルートであることを考慮して、ファイル名を指定する必要があります。 /stylesheets/mystyles.css%app%/public/stylesheets/mystyles.css)。

私はviewのサブフォルダを使用して、テンプレートをグループ化します。 /macros(保存されたマクロ)、/tools(私のアプリケーション用に追加のページが保存されています)。また、ルータなどにも使用できます。 /user/view.html,user/add.html ...

関連する問題