如何使用express.js使目录和子目录立即静态

问题描述 投票:0回答:1

我有一个

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 node.js express ejs
1个回答
0
投票

要提供CSS和JS等静态文件,通常将它们放在特定目录中,例如

public
,请看这个示例。

ejemplo_estroctura

在主配置文件(例如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
中:

example-html

希望它对你有用

© www.soinside.com 2019 - 2024. All rights reserved.