javascript - 无法使用 Node.js 通过 HTML 访问 JavaScript 静态文件

标签 javascript html node.js

我正在使用 Node.js 服务器来显示 HTML 文件。 HTML 使用 Javascript 文件来获取一些信息,但我无法访问该文件。这是我的 index.html 文件:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Swarm Profile</title>
    </style>
  </head>
  <body>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script src="/js/script.js"></script>
  </body>
</html>

还有我的 Node.js 服务器文件:

var http = require('http');
var fs = require('fs');

const hostname = '127.0.0.1';
const port = 9000;

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/html');
  fs.createReadStream("./index.html").pipe(res);
});


server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});

我应该使用什么才能访问 script.js 文件?

最佳答案

node 中已经有很多静态文件处理模块,看一下: Node static modules

最受欢迎的是:Node-PaperboyNode-Static

使用 Node 静态非常简单:

var static = require('node-static');
var file = new(static.Server)('./public');

require('http').createServer(function (request, response) {
    request.addListener('end', function () {

        file.serve(request, response);
    });
}).listen(8080);

关于javascript - 无法使用 Node.js 通过 HTML 访问 JavaScript 静态文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48936073/

相关文章:

javascript - getElementById 和简单地使用元素的 ID 作为变量有什么区别?

jquery - Masonry - 如何阻止 Masonry 将我所有的网格元素向左浮动?

html - 从 chrome 的扩展内容脚本访问 iframe 内容

node.js - TypeError : res. 状态不是错误处理中间件中的函数

javascript - 悬停在不工作时的动画对象

javascript - NextJS 中的静态分页

c# - 需要客户端Web应用程序来访问我编写的本地应用程序

javascript - 如何使用 CSS 自定义滑动条

node.js - Mongoose 检索没有 _id 字段的数据

javascript - NodeJS Sequelize - 无法读取未定义的属性 '_isSequelizeMethod'