vue nginx

作者: 吃半个馒头 | 来源:发表于2019-03-07 11:25 被阅读0次

    vue-cli执行

    <pre style="margin: 0px; padding: 0px; white-space: pre-wrap; overflow-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">npm run build</pre>

    进行打包,生成dist文件夹,把该文件夹下的文件直接复制到nginx服务器目录下,就可打开项目,但是只有首页是可以看到的,再刷新一下就404了,原因是vue的项目为单页应用,路由找不到所致。所以要在nginx服务器配置对所有的路径或者文件夹进行跳转。重定向到首页index下,这样就都能找到路由了。

    [ 复制代码

    ](javascript:void(0); "复制代码")

    <pre style="margin: 0px; padding: 0px; white-space: pre-wrap; overflow-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;"> location / {
    try_files uriuri/ @router;
    index index.html;
    }

    location @router {
    rewrite ^.*$ /index.html last;
    }</pre>

    [ 复制代码

    ](javascript:void(0); "复制代码")

    或者:

    <pre style="margin: 0px; padding: 0px; white-space: pre-wrap; overflow-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">location / {
    try_files uriuri/ /index.html;
    }</pre>

    注意在配置文件中写的时候,这个是在 sever{}中。

    try_files指令

    语法:try_files file ... uri 或 try_files file ... = code
    默认值:无
    作用域:server location

    其作用是按顺序检查文件是否存在,返回第一个找到的文件或文件夹(结尾加斜线表示为文件夹),如果所有的文件或文件夹都找不到,会进行一个内部重定向到最后一个参数。

    需要注意的是,只有最后一个参数可以引起一个内部重定向,之前的参数只设置内部URI的指向。最后一个参数是回退URI且必须存在,否则会出现内部500错误。命名的location也可以使用在最后一个参数中。与rewrite指令不同,如果回退URI不是命名的location那么args不会自动保留,如果你想保留args,则必须明确声明。

    location指令

    语法:location [=||*|^~|@] /uri/ { … }
    默认值:无
    作用域:server

    location指令是用来为匹配的URI进行配置,URI即语法中的"/uri/",可以是字符串或正则表达式。但如果要使用正则表达式,则必须指定前缀。 [@] 即是命名location,一般只用于内部重定向请求。

    参考:https://www.zhihu.com/question/46630687

    http://www.cnblogs.com/kevingrace/p/6126762.html

    http://luokr.com/p/14

    相关文章

      网友评论

          本文标题:vue nginx

          本文链接:https://www.haomeiwen.com/subject/ohxcpqtx.html