由于 MIME 类型,我的 html 上出现错误
Posted
技术标签:
【中文标题】由于 MIME 类型,我的 html 上出现错误【英文标题】:Error on my html because of type MIME 【发布时间】:2018-10-19 10:59:37 【问题描述】:所以我的项目有问题,我开发了一个节点 js 服务器,现在我想显示一个 html 文件,其中包含一个 Vue 脚本,由于另一个 JS 文件中编写的另一种方法,该脚本加载了数据。
但是当我尝试在我的浏览器上加载我的 html 文件时,我遇到了这个错误:拒绝从 'http://localhost:8080/src/verbatims.js' 执行脚本,因为它的 MIME 类型('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;
【问题讨论】:
根据您提供的信息,我们无法判断您的网络服务器为何声称/src/verbatims.js
是 HTML 文档。
这可能是一个 404 html 错误页面 - 尝试使用 <script src="src/verbatims.js" type="application/javascript"></script>
而不是 /src
- 您也可能希望在任何其他 js 文件之前加载 vue.js
@Quentin 你需要什么?
@mplungjan 我尝试过这种方式,但我遇到了同样的错误
@MissKnacki — 足够的细节来确定服务器如何决定它将做出什么响应。
【参考方案1】:
'../src/verbatims.js'
浏览器永远不会在 URL 中发送带有../
的请求。
它会在发送前规范化路径。
您需要将路由指定为/src/verbatims.js
。
您还应该考虑使用静态文件处理中间件,而不是手动为每个中间件创建路由。
【讨论】:
好的,非常感谢,我已经规范化了路径,它可以工作了! 我已经尝试使用静态文件处理中间件,但它不起作用:/以上是关于由于 MIME 类型,我的 html 上出现错误的主要内容,如果未能解决你的问题,请参考以下文章