0

将 Nunjucks 与 Node 一起使用

试图找出以下问题的优雅解决方案。使用这样的目录树: app_dir --app.js --public ----stylesheets ------mystyles.css --views ----page.html ----templates ------page_template.html

  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(我认为)会自动根据路由创建相对路径并覆盖静态行为。

例如,当我/stylesheets/mystyles.css在 page_template.html 上使用路径但使用路径调用扩展它的文件时, /:publication/:page呈现的 html 是 /:publication/:page/stylesheets/mystyle.css

我总是可以写一个快速的 hack,根据路由创建 CSS 和其他资源的相对路径,但这感觉不是一个特别优雅的解决方案 :( 非常感谢任何帮助。

4

1 回答 1

2

当我从 page_template.html 中引用 css 文件时,nunjucks(我认为)会自动根据路由创建相对路径并覆盖静态行为。

我认为这是错误的。Nunjucks 不会生成任何路径。
在任何文件夹( 、 等)的模板中viewview/templates您必须指定文件名,因为它是public dir根目录,例如 ./stylesheets/mystyles.css%app%/public/stylesheets/mystyles.css

我使用子文件夹view对模板进行分组,例如/macros(存储的宏)、/tools(为我的应用程序存储的附加页面)。您也可以将它用于路由器,例如/user/view.htmluser/add.html...

于 2016-07-24T08:19:57.957 回答