【问题标题】:Nodejs Index.html Loads but Links & Scripts 404Nodejs Index.html 加载但链接和脚本 404
【发布时间】:2014-05-23 08:21:47
【问题描述】:

我有一个 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'): 使用 ./views 作为默认值 客户端模板的路径

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

<link rel="stylesheet" type="text/css" href="style.css" />

我看看这个,我找不到问题。

【问题讨论】:

    标签: html node.js express


    【解决方案1】:

    从答案Express-js can't GET my static files, why? 我建议:

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

    这是必需的,因为您的:

    app.get ('/', function (req,res) {
    res.render('index.html');
    });
    

    只是解决当有人去/ 并说应该提供 index.html 时发生的事情。仅此而已。

    【讨论】:

      【解决方案2】:

      只需从项目的根目录运行服务器。 这将解决问题,因为您使用了相对寻址。

      【讨论】:

        猜你喜欢
        • 2017-11-01
        • 2015-12-14
        • 1970-01-01
        • 1970-01-01
        • 2017-07-19
        • 1970-01-01
        • 2023-03-16
        • 2020-02-07
        • 2017-12-31
        相关资源
        最近更新 更多