[英]How to address error "Did not load script at 'script name' because non script MIME types are not allowed when 'X-Content-Type: nosniff' is given
[英]Node.js route error: script MIME types are not allowed when 'X-Content-Type: nosniff' is given
我的css和js文件未找到/不在第二條路徑下加載。 他們確實在第一下很好。
為什么會這樣?
// ********************** INDEX PAGE *******************************************
app.get('/LimeLINE', (req, res) => {
let sTopHtml = fs.readFileSync(__dirname + '/components/top.html', 'utf8')
let sMainHtml = fs.readFileSync(__dirname + '/html/index.html', 'utf8')
let sBottomHtml = fs.readFileSync(__dirname + '/components/bottom.html', 'utf8')
// replace placeholders
sTopHtml = sTopHtml.replace('{{title}}', 'LimeLINE: Get Started')
res.send(sTopHtml + sMainHtml + sBottomHtml)
})
app.get('/LimeLINE/activate/:token', (req, res) => {
let sToken = req.params.token;
if (token === sToken) {
user.activateUser(res, sToken)
}
let sTopHtml = fs.readFileSync(__dirname + '/components/top.html', 'utf8')
let sMainHtml = fs.readFileSync(__dirname + '/html/index.html', 'utf8')
let sBottomHtml = fs.readFileSync(__dirname + '/components/bottom.html', 'utf8')
// replace placeholders
sTopHtml = sTopHtml.replace('{{title}}', 'LimeLINE: Welcome')
sMainHtml = sMainHtml.replace('{{click-trigger}}', 'click-trigger')
res.send(sTopHtml + sMainHtml + sBottomHtml)
})
您應避免在模板中使用相對的網址,這些網址將通過不同的路徑進行投放。 在這種情況下,將從http://<hostname>/LimeLINE
以及http://<hostname>/LimeLINE/activate/:token
提供相同的html。 在這兩種情況下, ../css/main.css
的相對URL將指向不同的位置。 由於瀏覽器不知道服務器上的目錄結構,因此它只是構造相對於當前url的路徑(在地址欄中)。
對於第一種情況,它變為http://hostname/../css/main.css
,與http://hostname/css/main.css
相同;
第二種情況是http://<hostname>/LimeLINE/activate/../css/main.css
與http://<hostname>/LimeLINE/css/main.css
。
只需更改為絕對URL(或相對於主機URL,以/開頭),您的代碼即可正常工作。 代替href="../css/main.css"
使用href="/css/main.css"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.