• vue打包成dist在----nginx中的配置


    一丶部署nginx(这里不做多说)

    二丶分清vue的模式

    hash 模式 和 history 模式

    三 丶nginx.conf配置(主要)

    3.1 vue hash 模式
    1. 配置修改
    配置文件在 nginx.conf中
     server { 
        # 服务器端口
        listen       80;
        # 服务器名称
        server_name  localhost;
        # 路径配置
        location / {
            # 相对路径配置,基于nginx启动的位置
            root   dist;
            index  index.html;
        }
        # 后端接口,反向代理  
        location ~ /rest {
           #  反向代理
           proxy_pass http://ip:port;
        }
     }
    
    ```
    
    2. 启动
    start nginx
    
    3. 浏览器访问
    
    http://localhost
    // 默认会跳到对应的路由,vue-router重定向,可能变成这样!
    http://localhost/#/a
    ```
    
    3.2 vue history 模式
    1. 配置修改
    配置文件在 nginx.conf中
     server { 
        # 服务器端口
        listen       80;
        # 服务器名称
        server_name  localhost;
        # 路径配置
        location / {
            # 相对路径配置,基于nginx启动的位置
            root   dist;
            index  index.html;
            # 需要指向下面的@router否则会出现vue的路由在nginx中刷新出现404
            # Nginx知识补充:
            # try_files 指令:
            # try_files $uri $uri/  /index.html;
            # 作用域:server location
            # 语法:try_files file ... uri 或 try_files file ... = code
            # 其作用是按顺序检查本地(服务器)文件是否存在,
            # 返回第一个找到的文件或文件夹(结尾加斜线表示为文件夹),
            # 如果所有的文件或文件夹都找不到,会进行一个内部重定向到最后一个参数。
            # 需要注意的是,只有最后一个参数可以引起一个内部重定向,之前的参数只设置内部URI的指向。
            # 最后一个参数是回退URI且必须存在,否则会出现内部500错误。命名的location也可以使用在最后一个参数中。
            # 与rewrite指令不同,如果回退URI不是命名的location那么args不会自动保留,如果你想保留args,则必须明确声明。
            # 但是其实这官方的demo是有一些需要注意的地方的。
            try_files $uri $uri/ @router;  
        }
        # 对应上面的@router,主要原因是路由的路径资源并不是一个真实的路径,所以无法找到具体的文件
        # 因此需要rewrite到index.html中,然后交给路由在处理请求资源
        location @router {
            # last :相当于Apache里德(L)标记,【表示完成rewrite !important】【将得到的路径重新进行一次路径匹配】,浏览器地址栏【URL地址不变】
            # break;本条规则匹配完成后,【终止匹配  !important】,【不再匹配后面的规则】,浏览器地址栏【URL地址不变】 一般不用这个选项!
            # redirect: 返回302临时重定向,浏览器地址【会显示跳转后的URL地址】
            # permanent:返回301永久重定向,浏览器地址栏【会显示跳转后的URL地址】
            # 1.静态资源,去掉项目名,进行定向 为转义, nginx 中的 / 不代表正则,所以不需要转义
            rewrite (static/.*)$ /$1   redirect;
            # 2.非静态资源,直接定向index.html
            rewrite ^.*$   /index.html  last;
         }
         # 后端接口,反向代理  
         location ~ /rest {
            #  反向代理
            proxy_pass http://ip:port;
         }
     }
    2. 启动
    cd 到目录,nginx在以下目录
    ```
    start nginx
    ```
    3. 浏览器访问
    ```
    http://localhost
    // 默认会跳到对应的路由,vue-router重定向,可能变成这样!
    http://localhost/a
    ```

     保留地址以防丢失http://www.wuweigang.com/?id=329

  • 相关阅读:
    Django基础命令
    ubuntu中python项目独立的虚拟环境
    Springboot项目的小问题
    redis
    ubuntu系统根目录下各个目录用途说明
    SpringBoot 在IDEA中实现热部署
    SpringBoot访问不到webapp下的内容
    httpServeltRequest和Model传值的区别
    map的输出
    主流框架排名
  • 原文地址:https://www.cnblogs.com/wsycoo/p/14626848.html
Copyright © 2020-2023  润新知