我有一个运行在客户端文件夹中的客户端运行的nodejs服务器,以简化index.html的文件夹结构管理。然后,链接和脚本应该不会加载任何问题。
client folder
/index.html
/style.css
/script.js
closer folder
/closure
/etc.
app.js
package.json
utility.js
在我的app.js文件中,我有一个正常的
app.get ('/', function (req,res) {
res.render('index.html');
});
并且当我运行并转到本地主机端口时,文件会加载,但是当我打开chrome控制台时,我看到index.html文件无法加载任何脚本,但未找到404错误。我注意到,在许多快递应用中,似乎有些共同点是
this app.set('views', __dirname + '/client');
this app.use(express.static(__dirname +"./client"));
this app.use('client', express.directory('client'));
但是我看不到关于app.use和app.set之间区别的解释,也没有很好的解释,我能找到的最好的是
app.set('views', __dirname + '/views'): Use ./views as the default
path for the client-side templates
摘自Alex Young的文章,但即使这对我来说有点稀疏和枯燥,我希望对索引文件为何无法在与其相同目录级别上加载链接的原因进行更深入的解释。
我看着这个,我找不到问题。
从答案Express-js无法获取我的静态文件,为什么? 我建议:
app.use("/client", express.static(__dirname + '/client'));
这是必需的,因为您:
app.get ('/', function (req,res) {
res.render('index.html');
});
仅解决当有人进入/并说应提供index.html时发生的情况。 仅此一项就无济于事。
只需从项目的根目录运行服务器即可。
因为您使用了相对寻址,所以可以解决该问题。