ejs在nodejs中查看引擎路径设置问题

时间:2018-02-22 15:29:18

标签: node.js express path ejs

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

我使用express.static中间件在我的root中有server.js文件。

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

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

另外,我使用的是ejs视图引擎,我有两个视图文件。 (ejs视图引擎正在查找视图文件夹)

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

我正在使用<%include%>每个文件中的代码,

// 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有许多静态图像文件, 我必须写

  

img src

每张图片两次?

如果有更有效的方法来解决这个问题, 我真的很感激地提醒我。谢谢。

1 个答案:

答案 0 :(得分:1)

由于您指的是同一个文件,因此您不需要再写两次。

因为您已配置express static

,所以必须如此
//for css file
<link rel="stylesheet" href="/css/style.css" type="text/css">
//for image.  
<img src="/imagefilepath">

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

希望这会有所帮助。