重要声明:本文章仅仅代表了作者个人对此观点的理解和表述。读者请查阅时持自己的意见进行讨论。
Nginx 对于静态文件的处理能力是非常高效的。因此许多前端会选择直接使用Nginx来帮助我们进行静态文件的资源管理,而Vue项目经过build过后,产生的静态文件(js+html+js)等文件,都可以放在nginx里面进行托管。
对于history
模式的vue项目,在build时,务必将 publicPath
修改为 "./"
(默认可能没有或是"/"
) 这样就不仅可以适配二级路径,根路径也会兼容。 下面贴出一个针对二级路径的配置。
# 这里直接给出 location 级别的配置(如果是根路径项目,将 /webapp/ 改成 / 就好了):
location /webapp/ {
# 这样一来,每次请求 http://www.host.com/webapp/ 就会打开 public 目录下的 webapp 目录里的 index.html 文件
root C:/www/public;
# 找不到指定文件时返回index.html,这样可支持 history 模式的路由
try_files $uri $uri/ /index.html =404;
index index.html;
default_type 'text/html';
add_header Cache-Control no-cache;
gzip on;
# 启用gzip压缩的最小文件,小于设置值的文件将不会压缩
gzip_min_length 1k;
# gzip 压缩级别,1-9,数字越大压缩的越好,也越占用CPU时间。
gzip_comp_level 2;
# 进行压缩的文件类型。javascript有多种形式。其中的值可以在 mime.types 文件中找到
gzip_types text/html text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png application/vnd.ms-fontobject font/ttf font/opentype font/x-woff image/svg+xml;
# 是否在http header中添加Vary: Accept-Encoding,建议开启
gzip_vary on;
gzip_disable "MSIE [1-6]\."; # 禁用IE 6 gzip
gzip_buffers 32 4k; # 设置压缩所需要的缓冲区大小
gzip_http_version 1.1; # 设置gzip压缩针对的HTTP协议版本
sendfile off;
}
这样写好之后,重新加载nignx配置,就可以访问啦。这里的配置是启用了 gzip 压缩功能的哦,这样可以加快客户端加载速度以及流量降低。
可以看到这里的路径已经是一个二级路径了,如果你的应用是一级的话,你可以将location后面的 /webapp/ 改成 / 这样就是一级的啦。
Full text complete, Reproduction please indicate the source. Help you? Not as good as one:
Comment(Comments need to be logged in. You are not logged in.)
You need to log in before you can comment.