Nodejs Index.html加载但链接和脚本404

mib*_*bit 6 html node.js express

我有一个nodejs服务器运行,客户端封装在客户端文件夹中,以便管理index.html的文件夹结构.然后链接和脚本应该加载没有问题.

client folder
  /index.html
  /style.css
  /script.js
closer folder
  /closure
  /etc. 
app.js
package.json
utility.js
Run Code Online (Sandbox Code Playgroud)

在我的app.js文件中,我有一个正常的

app.get ('/', function (req,res) {
res.render('index.html');
});
Run Code Online (Sandbox Code Playgroud)

当我运行并转到本地主机端口时,文件会加载,但是当我打开chrome控制台时,我看到index.html文件无法加载任何找不到404错误的脚本.我注意到在许多快递应用程序中似乎有一些共同的模式

this app.set('views', __dirname + '/client');

this app.use(express.static(__dirname + "./client"));

this app.use('client', express.directory('client'));
Run Code Online (Sandbox Code Playgroud)

但我没有看到关于app.use和app.set之间差异的解释,也没有一个很好的解释,我能找到的最好的是

app.set('views',__ dirname +'/ views'):使用./views作为客户端模板的默认路径

来自Alex Young的文章,但即使这对我来说有点稀疏和干燥,我希望更深入地解释为什么索引文件可能无法加载与它相同的目录级别的链接.

<link rel="stylesheet" type="text/css" href="style.css" />
Run Code Online (Sandbox Code Playgroud)

我看着这个,我找不到问题.

Jas*_*ler 5

从答案Express-js无法获取我的静态文件,为什么?我建议:

app.use("/client", express.static(__dirname + '/client'));
Run Code Online (Sandbox Code Playgroud)

这是必要的,因为你的:

app.get ('/', function (req,res) {
res.render('index.html');
});
Run Code Online (Sandbox Code Playgroud)

只是解决当有人去/说并且应该提供index.html 时会发生什么.仅此一点并不能解决任何问题.