2016-11-29 9 views
0

で作業していない:は、私はnginxのによって提供されているいくつかの圧縮されたJavaScriptファイルを持っているnginxの

<script type="application/javascript" src="js/shim.min.js.gz"></script> 
<script type="application/javascript" src="js/zone.js.gz"></script> 

が、そのnginxのは、ブラウザのエラーが生じtext/plainのようにそれらを提供している表示されます。

SyntaxError: illegal character shim.min.js.gz:1 
ヘッダを見ると

、これが応答である:ここでは

Content-Encoding:gzip 
Content-Type:text/plain 
Date:Tue, 29 Nov 2016 18:03:01 GMT 
ETag:W/"583ce194-68b3" 
Last-Modified:Tue, 29 Nov 2016 02:01:56 GMT 
Server:nginx/1.10.2 
Vary:Accept-Encoding 

は私nginx.confです:

worker_processes 4; 

events { worker_connections 1024; } 

http { 
include /etc/nginx/mime.types; 

gzip on; 
gzip_static on; 
gzip_disable "msie6"; 

gzip_vary on; 
gzip_comp_level 5; 
gzip_buffers 16 8k; 
gzip_http_version 1.0; 
gzip_min_length 256; 
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript application/vnd.ms-fontobject application/x-font-ttf font/opentype image/svg+xml image/x-icon; 

     upstream node-app { 
       server node1:3000 weight=10 max_fails=3 fail_timeout=30s; 
     } 

     server { 
       listen 80; 
       index index.html 
       error_log /var/log/nginx/error.log; 
       access_log /var/log/nginx/access.log; 
       root /var/www/public; 

       location /api { 
       proxy_pass http://node-app; 
       proxy_http_version 1.1; 
       proxy_set_header Upgrade $http_upgrade; 
       proxy_set_header Connection 'upgrade'; 
       proxy_set_header Host $host; 
       proxy_cache_bypass $http_upgrade; 
       } 
     } 
} 

gzip_staticはオンに設定されていますが、動作していないようです。私はnginxのドッキングウィンドウの画像を使用しています:

>nginx:1.10.2-alpine

この画像はgzipで静的モジュールを使用してコンパイルされています。--with-http_gzip_static_module

私はJavaScriptを解凍した場合と、それらを提供非圧縮すべてが正常に動作します。 MIMEタイプに問題はありますか?これは、と正常に動作します:

<script type="application/javascript" src="js/shim.min.js"></script> 
<script type="application/javascript" src="js/zone.js"></script> 

答えて

1

Module ngx_http_gzip_static_module

ngx_http_gzip_static_moduleモジュールは、が「.gzを」ファイル名の拡張子の代わりに、通常のファイルとファイルを予備圧縮送信することができます。

gzip_static

予め圧縮ファイルの存在をチェックを(「オン」)を有効または無効(「オフ」)。

サポートされている圧縮クライアント(/some/path/js/filename.js.gz)には2つのファイルがあり、サポートされていません(/some/path/js/filename.js)。

ファイルは、gzipコマンドまたは他の互換性のあるファイルを使用して圧縮できます。あなたのhtmlで

用途:

<script type="application/javascript" src="/js/filename.js"></script> 

とnginxのは、クライアントへのファイルのいずれかを返します。

元のファイルと圧縮されたファイルの変更日時は同じにすることをお勧めします。

関連する問題