admin管理员组文章数量:1435859
I've got some pressed javascript files being served by nginx:
<script type="application/javascript" src="js/shim.min.js.gz"></script>
<script type="application/javascript" src="js/zone.js.gz"></script>
but it appears that nginx is serving them as text/plain resulting in browser errors:
SyntaxError: illegal character shim.min.js.gz:1
Looking at the headers, this is the response:
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
Here is my 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_p_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;
}
}
}
I have gzip_static set to on but it doesn't appear to be working. I am using the nginx docker image:
>nginx:1.10.2-alpine
This image is piled with the gzip static module:
--with-http_gzip_static_module
if I unpress the javascripts and serve them unpressed everything works fine. Is there an issue with the mime types? This works fine with:
<script type="application/javascript" src="js/shim.min.js"></script>
<script type="application/javascript" src="js/zone.js"></script>
I've got some pressed javascript files being served by nginx:
<script type="application/javascript" src="js/shim.min.js.gz"></script>
<script type="application/javascript" src="js/zone.js.gz"></script>
but it appears that nginx is serving them as text/plain resulting in browser errors:
SyntaxError: illegal character shim.min.js.gz:1
Looking at the headers, this is the response:
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
Here is my 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_p_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;
}
}
}
I have gzip_static set to on but it doesn't appear to be working. I am using the nginx docker image:
>nginx:1.10.2-alpine
This image is piled with the gzip static module:
--with-http_gzip_static_module
if I unpress the javascripts and serve them unpressed everything works fine. Is there an issue with the mime types? This works fine with:
<script type="application/javascript" src="js/shim.min.js"></script>
<script type="application/javascript" src="js/zone.js"></script>
Share
Improve this question
asked Nov 29, 2016 at 19:35
code4causecode4cause
1291 silver badge9 bronze badges
1 Answer
Reset to default 5Module ngx_http_gzip_static_module:
The ngx_http_gzip_static_module module allows sending prepressed files with the “.gz” filename extension instead of regular files.
gzip_static:
Enables (“on”) or disables (“off”) checking the existence of prepressed files.
We have to have two files for supported pression clients (/some/path/js/filename.js.gz
) and not supported (/some/path/js/filename.js
).
The files can be pressed using the gzip mand, or any other patible one.
Use in your html:
<script type="application/javascript" src="/js/filename.js"></script>
and nginx will return to the client one of the files.
It is remended that the modification date and time of original and pressed files be the same.
本文标签: javascriptgzipstatic not working with nginxStack Overflow
版权声明:本文标题:javascript - gzip_static not working with nginx - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1745639260a2667751.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论