vue部署到服务器上,不是服务器根目录如何配置

vue部署到服务器上,不是服务器根目录如何配置

阅读 2.8k
3 个回答

无所谓包放在服务器什么地方,你只需要注意2个地方就行

  1. 打包publicPath设置为./

默认情况下,Vue CLI 会假设你的应用是被部署在一个域名的根路径上,例如 https://www.my-app.com/。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.my-app.com/my-app/,则设置 publicPath 为 /my-app/。

这个值也可以被设置为空字符串 ('') 或是相对路径 ('./'),这样所有的资源都会被链接为相对路径,这样打出来的包可以被部署在任意路径,也可以用在类似 Cordova hybrid 应用的文件系统中。

  1. nginx的配置如下即可,commonFronted随意起名

    server {
     listen       8066;
     server_name  commonFronted;
    
     location /commonFronted {
         alias     /store0/commonFronted; #静态资源包在服务器的位置
         index     index.html;
     }
    }

已参与了 SegmentFault 思否社区 10 周年「问答」打卡 ,欢迎正在阅读的你也加入。

publicPath设置的路径需要和你的静态资源部署都服务器的路径相同,也就是说index.html需要能够访问到这个资源;因此如果不是服务器根目录那么publicPath就不要设置为/,而要根据”域名“+”服务器的资源路径“来写,比如域名“xxx.com”IP会映射到静态资源的服务器,并且资源文件存放在app/statics下面,那么publicPath则要设置为//xxx.com/app/statics

已参与了 SegmentFault 思否社区 10 周年「问答」打卡 ,欢迎正在阅读的你也加入。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏