Skip to content

Nginx 配置实践

一、VUE 项目页面刷新问题

VUE 项目部署页面刷新后出现 404 或者无法正常访问的情况,是因为路由匹配不找到。

如果你希望 Nginx 可以正确识别路径不带 .html 的情况,且 Nginx 能够兼容用户输入 .html 后缀的请求,并且也能正确显示页面。

则具体配置如下:

bash
location / {
    # 你的具体项目部署路径地址
    root   web/ABC/dist;
    # 尝试查找文件,包括带.html后缀和不带后缀的文件,如果找不到,则重定向到 @rewrite
    try_files $uri $uri.html $uri/ @rewrite;
    index index.html;
    autoindex on;
    gzip on;
    gzip_types application/javascript text/css;
    gzip_vary on; # 是否传输gzip压缩标志
    add_header Access-Control-Allow-Origin '*';
    add_header Access-Control-Allow-Methods 'GET, POST, PUT, OPTIONS';
    add_header Access-Control-Expose-Headers 'Accept-Ranges, Content-Encoding, Content-Length, Content-Range';
}

location @rewrite {
    rewrite ^(.*)\.html$ $1 last;  # 将带.html后缀的请求重写为不带后缀的请求
}