当我有以下代码时:
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!'));
以及以下目录结构:
当我向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文件?
答案 0 :(得分:0)
您应该更改您的静态文件路由。添加一些路线。
app.use('/public', express.static('public'))
代替
app.use(express.static('public'));