回答:
txt拡張子のデフォルトのタイプはtext / plainです。この動作はmime.typesファイルに記述されています。http://nginx.org/en/docs/http/ngx_http_core_module.html#default_typeまたはhttp://nginx.org/en/docs/http/ngx_http_core_module.html#typesを使用してオーバーライドします(application / octetに設定される場合があります) -ストリーム)。
ファイルの変更Content-Type
は.txt
機能する可能性がありますが、ユーザーのブラウザーが期待どおりに応答することを100%保証することはできないため、この問題を解決するには多少危険な方法です。さらに、.txt
ファイルをバイナリファイルとしてラベル付けすることは誤解を招きます。
代わりに、ファイルを表示するのではなく、ブラウザに強制的にダウンロードさせる標準的な方法を使用することをお勧めします。これは、Content-Disposition
ヘッダーattachment
(RFC 2183、RFC 2616も参照)を使用することです。
たとえば、このnginx location
ブロックは.txt
、/downloads/
URIの下にファイルがあるこのようなヘッダーを送信するため、ダウンロードが強制されます。
location ~ ^/downloads/.*\.txt$ {
add_header Content-Disposition "attachment";
}
そのため、構成に適した他の適切なマッチングなどを追加できます。
Content-Disposition
、クロムブラウザーのハックは、コンソールに悪い言葉を発し始め、ページからのファイルのダウンロードを停止することさえあります。これは、(黄色い三角形で)thinhgsを言うように:"Resource interpreted as Document but transferred with MIME type image/png:"
ダウンロード可能なファイルの場所を抽出し、コンテンツタイプをに設定する必要がありますapplication/octet-stream
。
ダウンロード可能なプロモーション資料のサービスには次の場所があります(pdf、画像、いくつかのドキュメントが含まれていますが、txtファイルでも動作するはずです)。
location /promomaterial/download/ {
add_header Content-Type application/octet-stream;
}
試したブラウザはすべて、表示しようとする代わりに、この場所からすべてのファイルをダウンロードします。