【问题标题】:Relative path in ejs fileejs文件中的相对路径
【发布时间】:2019-01-26 23:41:12
【问题描述】:

我正在尝试创建一个快速应用程序,它具有以下文件夹结构。

--My_App
   --public
      --stylesheets
         app.css
   --views
      --camps
         index.ejs
      --partials
         header.ejs
   app.js

我已经设置express 来提供公共目录的静态文件以及app.use(express.static("public"));

问题来了:

我使用<link> 标签的href 属性将app.css 文件链接到我的index.ejs 文件, 通过使用路径 = "/stylesheets/app.css",它可以工作。

但是当我尝试使用链接 header.ejs 文件到 index.ejs 文件时 <% include /partials/header.ejs %> 它给出了一个错误 - could not find "/partials/header.ejs" 。这不应该有效吗,因为 express 也提供视图目录的内容

另外,能否请您提及上述使用的相对路径对应的绝对路径。

【问题讨论】:

  • 你试过尝试“../partials/header.ejs”
  • 是的,它有效。但我想知道为什么它不适用于<% include /partials/header.ejs%>
  • ".ejs" 不是静态文件,而是在 v8 引擎中处理。此外,您将一个文件包含在另一个文件中。这与在另一个文件中包含指向该文件的链接不同。
  • 好的,谢谢您的回复。我还有一个问题(抱歉给您带来不便)。两个相对路径是否指向同一个根目录?
  • 我认为如果你有这些代码行,你需要了解它们在代码中的含义 app.set('views', path.join(__dirname, '/views')); app.set('视图引擎', 'ejs');

标签: node.js express


【解决方案1】:

我认为问题出在路径上。

    var path = require('path');
    express.static(path.join(__dirname, 'public')));

你应该给出正确的路径

<% include ./views/partials/header.ejs%>

【讨论】:

    猜你喜欢
    • 2021-12-02
    • 1970-01-01
    • 2018-05-05
    • 2015-02-18
    • 2021-05-18
    • 2012-03-19
    • 2013-09-06
    • 2020-10-26
    • 2017-05-03
    相关资源
    最近更新 更多