我有一个
views
文件夹,我使用 app.use(express.static('views')
将其设为静态
视图文件夹包含子目录如下-
views
|-homepage/
| |-homepage.ejs
| |-homepage.css
| |-homepage.js
|
|-partials/
| |-navbar.ejs
| |-footer.ejs
|
|-payground/
| |-playground.ejs
| |-playground.css
| |-playground.js
我渲染了主页,发现 CSS 损坏了,因为我没有将
./views/homepage
指定为静态。
尽管现在这不是问题,因为我只限制了要渲染的页面,但将来如果我决定创建动态目录,我不知道如何使它们的特定文件夹静态。
有什么方法可以使文件夹静态,并且它的所有子目录也变为静态。 我见过有人说,一旦父文件夹被声明为静态,它的所有子目录也会变成静态,我同意,因为我的 homepage.ejs 渲染得很好(但没有 CSS),但是,我很确定,我的主页的 css直到我专门将
app.use(express,static('./views/homepage'))
添加到我的代码中后才呈现。
提前致谢!
要提供CSS和JS等静态文件,通常将它们放在特定目录中,例如
public
,请看这个示例。
在主配置文件(例如app.js)中,您需要配置express以从
public
目录提供静态文件:
app.use(express.static(path.join(__dirname, 'public')));
app.set('view engine', 'ejs');
// example route
app.get('/', (req, res) => {
res.render('homepage/homepage');
});
在您的 .ejs 文件中,您可以使用静态文件的正确路径包含相应的 CSS 和 JS 文件。例如,在
homepage.ejs
中:
希望它对你有用