当我设置一些路线时,我通常会这样做:
app.get('/x', function(req, res) {
res.sendFile(path.join(__dirname + '/public/.../index.html'));});
这样做的问题是,如果您的路由文件夹中有 JS 或 CSS,则无法托管它们。
很多时候我只是添加
app.get('/public/.../js/index.js', function(req, res) {res.sendFile (__dirname + '/public/.../js/index.js');});
app.get('/public/.../css/style.css', function(req, res) {res.sendFile (__dirname + '/public/.../css/style.css');});
就在路由下方,以使 JS 和 CSS 可访问。
我已经使用快速静态托管库
app.use('/lib', express.static('lib'));
但这对于 Route 文件夹 (/public/.../js) 中的 JS 和 CSS 来说是不可能的
- Is There a better Way to organize my files that are in the route folders ?
最佳答案
您可以使用虚拟路径,保留当前的目录结构,添加以下路由,您可以引用 ./public 子目录下带有/static 前缀的所有静态文件:
app.use('/static', express.static('public'))
例如您可以引用http://your_server/static/public/.../js/index.js 。 请注意,在这种情况下/public 下的所有文件都可能通过/static 前缀访问,因此您不应该在那里有服务器代码或服务器配置。
为了清楚起见,理想情况下,您应该托管并引用具有类型子文件夹(例如/static/js、/static/css)的一个根文件夹中的所有静态文件:
app.use('/static', express.static('static'))
关于javascript - Express.js 路线组织,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40390533/