所以我的项目有问题,我开发了一个节点js服务器,现在我想显示一个包含Vue脚本的html文件,该脚本通过另一个JS文件编写的另一个方法加载数据 .
但是当我尝试在我的浏览器上加载我的html文件时,我有这样的错误:拒绝执行'http://localhost:8080/src/verbatims.js ' because its MIME type (' text / html'中的脚本不可执行,并且启用了严格的MIME类型检查 .
这是我的HTML代码:
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<meta content="X-Content-Type-Options: nosniff">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<script src="/src/verbatims.js" type="application/javascript"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/1.0.18/vue.min.js"></script>
<title>My project</title>
</head>
<body>
<div id="data">
Le nombre de requête est de : {{ request }}<br>
<button v-on:click="change">Change value</button>
<button v-on:click="stop">Arrêter</button>
</div>
<script>
let app = new Vue({
el:'#data',
data: {
request: "toto",
ite: 0
},
methods: {
change: function() {
changeNbRequest()
},
stop: function() {
clearInterval()
}
}
});
changeNbRequest = function() {
var timer = setInterval(function() {
let verbatim = new Verbatims().list()[ite];
}, 5000);
}
</script>
</body>
</html>
我检查了我的项目中的每个类型MIME,但没有任何工作 .
任何的想法 ?
非常感谢 !
编辑:这是我的服务器代码:
const express = require('express')
const RouterVerbatim = require('./routerVerbatim')
const fs = require('fs')
class Server {
constructor() {
this.app = express()
this.app.get('/', function (req, res) {
res.send('Hello World')
})
this.app.get('/index', function (req, res) {
res.writeHead(200, {'Content-Type': 'text/html'});
fs.readFile(__dirname + '/View/index.html', function (err,data) {
res.end(data);
});
})
this.app.get('../src/verbatims.js', function (req, res) {
res.writeHead(200, {'Content-Type': 'text/javascript'});
fs.readFile('../src/verbatims.js', function (err,data) {
res.end(data);
});
})
this.app.use('/verbatims', new RouterVerbatim().router)
}
start() {
this.app.listen(8080, function() {
console.log('Exemple app listening on port 8080!')
})
}
}
module.exports = Server;
1 回答
浏览器永远不会在URL中发送带有
../
的请求 .它会在发送之前规范化路径 .
您需要将路径指定为
/src/verbatims.js
.您还应该考虑使用静态文件处理中间件,而不是手动为每个中间件创建路由 .