簡體   English   中英

Node.js路由錯誤:給出'X-Content-Type:nosniff'時,不允許腳本MIME類型

[英]Node.js route error: script MIME types are not allowed when 'X-Content-Type: nosniff' is given

我的cssjs文件未找到/不在第二條路徑下加載。 他們確實在第一下很好。

為什么會這樣?

  // **********************  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.csshttp://<hostname>/LimeLINE/css/main.css

只需更改為絕對URL(或相對於主機URL,以/開頭),您的代碼即可正常工作。 代替href="../css/main.css"使用href="/css/main.css"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM