【问题标题】:ejs view engine path setting issue in nodejsnodejs中的ejs查看引擎路径设置问题
【发布时间】:2018-02-22 15:29:18
【问题描述】:

我不知道如何在stackoverflow中绘制我的项目结构,所以我会尽可能清楚地解释我的问题。

我的根目录中有 server.js 文件,使用的是 express.static 中间件。

app.use(express.static(path.join(__dirname, 'public')));

我的 style.css 文件包含在 public/css/style.css 中

另外,我正在使用 ejs 视图引擎,并且我有两个视图文件。 (ejs视图引擎正在寻找views文件夹)

第一个是views/main/home.ejs,第二个是views/sub/intro/location.ejs

我在每个文件中使用 代码,

// views/main/home.ejs
<% include ../header.ejs %>

// views/sub/intro/location.ejs
<% include ../../header.ejs %>

问题是,在 header.ejs 文件中,我是否必须在两个不同的 href 路径中链接相同的 css 文件?喜欢,

// views/header.ejs

// for views/main/home.ejs
<link rel="stylesheet" href="css/style.css" type="text/css">

// for views/sub/intro/location.ejs
<link rel="stylesheet" href="../css/style.css" type="text/css">

这是我唯一能做的吗?

如果 header.ejs 有很多静态图片文件, 我必须写吗

图片来源

每张图片两次?

如果有更有效的方法来解决这个问题, 提醒我这一点将不胜感激。谢谢。

【问题讨论】:

  • 这就够了,这会在公共目录中搜索

标签: node.js express path ejs


【解决方案1】:

你不需要写两次,因为你指的是同一个文件。

既然你已经配置了express static,就必须是这样的:

//for css file
<link rel="stylesheet" href="/css/style.css" type="text/css">
//for image.  
<img src="/imagefilepath">

关键是应该有一个,而不是两个。

希望这会有所帮助。

【讨论】:

  • 谢谢。顺便问一下, css/style.css 和 /css/style.css 有什么区别?第一个在views/main/home.ejs中运行良好,但在views/sub/intro/location.ejs中运行良好
  • 这取决于您的文件夹结构。 css/style.css 表示css 是顶级文件夹,不在任何文件夹内,而/css/style.css 表示css 在另一个文件夹内。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-07-06
  • 2015-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多