【问题标题】:Node.js HTML page error 404 while getting javascript获取javascript时Node.js HTML页面错误404
【发布时间】:2017-03-28 11:47:16
【问题描述】:

我正在使用 node.js,我希望我的 HTML 文件能够获取 javascript 文件。

这是我使用 node.js 运行的名为 server.js 的文件:

var app = require('express')();
var http = require('http').Server(app);

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

http.listen(3000, function(){
  console.log('listening on *:3000');
});

非常简单的代码用于托管index.html。这个 HTML 文件有一些脚本标签:

<script type="text/javascript" src="./A.js"></script>

<script type="text/javascript" src="./B.js"></script>

<script type="text/javascript" src="./C.js"></script>

问题是,当我运行 server.js 并转到浏览器时,我在控制台上收到此错误:

GET http://localhost:3000/A.js 
GET http://localhost:3000/B.js 
GET http://localhost:3000/C.js 404 (Not Found)

404 error not found

文件都在同一个目录中,我不明白为什么它没有得到脚本。

【问题讨论】:

    标签: javascript html node.js http-status-code-404


    【解决方案1】:

    您的server.js 不知道如何处理除了对根页面的请求之外的任何事情。 (即使http://localhost:3000/index.html 也会失败并返回 404。)

    添加express.static middleware 以提供目录中的文件:

    var express = require('express');
    var app = express();
    var http = require('http').Server(app);
    
    express.static('public')
    
    app.get('/', function(req, res){
      res.sendFile(__dirname + '/index.html');
    });
    
    http.listen(3000, function(){
      console.log('listening on *:3000');
    });
    

    现在public 文件夹中的所有文件都将按照您的意愿提供。 (将您的 *.js 文件移动到名为 public 的子文件夹中)

    请参阅HyperDev default project template,了解一个很好的互动示例。

    【讨论】:

    • 是的,谢谢 :) 您输入的代码中唯一缺少的是声明一个 var express = require('express') 然后 app = express()
    • @NunoMiguelSilva: 啊.. 修好了~
    【解决方案2】:

    尝试查看Express1 提供静态文件的文档。

    您正在使用这些行来提供您的索引文件:

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

    您可以使用相同的方式提供 js 文件,也可以将它们放入 public 文件夹并添加 app.use(express.static('public'))

    然后您可以将它们引用为public/A.js

    【讨论】:

    • 在服务器上,该文件将是public/A.js,但它应该在HTML中引用为./A.js
    猜你喜欢
    • 1970-01-01
    • 2016-01-18
    • 2013-04-18
    • 2019-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-24
    相关资源
    最近更新 更多