Express,如何加载JS文件

时间:2018-06-29 14:36:02

标签: javascript node.js express

当我有以下代码时:

const express = require('express');
const app = express();
const http = require('http').Server(app);
const io = require('socket.io')(http);
const cors = require('cors');

app.use(cors());

app.use(express.static('public'));
app.set('view engine', 'html');

app.get('/', (req, res, next) => {
    res.render('./index');
});

io.on('connection',(socket) => {
    console.log('a user connected');
});

app.listen(3000, () => console.log('Example app listening on port 3000!'));

以及以下目录结构:

enter image description here

当我向localhost:3000上的服务器发出请求时,我得到了我想要的HTML。但是,我不明白的是,浏览器无法加载我的JS文件。这是我的HTHL

<!DOCTYPE html>
<html lang="en">
<head>
    <script src="/public/script.js"></script>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    test
</body>
</html>

我在控制台中收到以下错误:

  

localhost /:5 GET http://localhost:3000/public/script.js 404(未找到)

     

localhost /:1拒绝从'http://localhost:3000/public/script.js'执行脚本,因为它的MIME类型('text / html')无法执行,并且启用了严格的MIME类型检查。

为什么chrome无法下载并执行我的Javascript文件?

1 个答案:

答案 0 :(得分:0)

您应该更改您的静态文件路由。添加一些路线。

app.use('/public', express.static('public'))

代替

app.use(express.static('public'));