Express.js_如何使用两个静态视图目录



我正试图弄清楚如何在我的应用程序中使用多个目录来提供视图文件,但我所尝试的一切都不起作用,包括我在这里的帖子中看到的回复。请帮忙。更多的目录更酷,对吧?哈哈。只是它提供了更好的文件组织和分离,提高了应用程序的效率和安全性。

这是我想要的。

app.use(express.static('/Users/matt/Desktop/websites/app10.14.2020/views')); app.use(express.static('/Users/matt/Desktop/websites/app10.14.2020/views2'));

当我运行此程序时,似乎只有指定的第一个目录(视图而不是视图2(可以访问。我希望双方都能提供文件。请建议和快乐编码!!!

提供静态信息的方式是正确的。只需验证路径名称是否正确,我建议使用__dirnamepath.resolve来解析statics的路径,例如:

app.use(express.static(path.resolve(__dirname,'./static1')))
app.use(express.static(path.resolve(__dirname,'./static2')))

记住用不同的名称命名文件,否则表示忽略第二个同名文件。。。或者为每个静态路径创建路径,例如:

app.use('/static1', express.static(path.resolve(__dirname,'./static1')))
app.use('/static2', express.static(path.resolve(__dirname,'./static2')))

localhost:PORT/打开view1.htmllocalhost:PORT/view2打开view2.html

const app = express()
app.use(express.static(__dirname + "/"));
app.get('/',(req,res)=>{
res.sendFile(path.resolve(__dirname, "view1.html"))
})
app.get('/view2',(req,res)=>{
res.sendFile(path.resolve(__dirname, "view2.html"))
})

根据这里写的内容,url部分只有一个错误。你应该检查https://expressjs.com/tr/starter/static-files.html

app.use(express.static('public'))
app.use(express.static('files'))

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

最新更新