簡體   English   中英

節點連接靜態集內容類型text / plain不起作用

[英]Node Connect Static set Content-type text/plain not working

我正在嘗試將connect.static提供的文件的內容類型設置為text/plain 我認為這會起作用,但是連接似乎仍然在檢測mime模塊擴展的內容類型。

var connect = require("connect")

connect()
    .use(connect.static(__dirname + "/public"))
    .use(function(req, res, next) {
        res.setHeader("Content-Type", "text/plain");
    })
    .listen(process.env.PORT);

這有什么簡單的方法嗎? 也許在連接mime的實例之前搞砸了才能到達它? 或者我是否必須重寫連接靜態中間件?

如果您可以控制公共目錄中的文件名,最簡單的方法是確保它們以“.txt”結尾,以便mime映射為send函數提供正確的Content-Type。

如果失敗,您可以更改默認的mime類型:

var connect = require("connect")

var mime = connect.static.mime;
mime.default_type = mime.lookup('text');

connect()
    .use(connect.static(__dirname + "/public"))
    .listen(process.env.PORT);

或者,如果您確實希望每個文件都作為text / plain提供,只需在調用靜態中間件之前設置Content-Type標頭。 如果標題尚未出現在響應中,它只會添加標題:

var connect = require("connect")

connect()
    .use(function(req, res, next) {
        res.setHeader("Content-Type", "text/plain");
        next();
    })
    .use(connect.static(__dirname + "/public"))
    .listen(process.env.PORT);

只有靜態中間件無法處理請求,才會執行下一個中間件。

Incase靜態中間件找到該文件,它將它提供給客戶端。下一個中間件不會被執行。

這就是您的中間件無效的原因。

暫無
暫無

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

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