这次编译后实战项目不在根目录下怎么办?实战项目编译后不在根目录下有哪些注意事项?下面是实战案例。让我们来看看。
例如:
vue -路由器:历史模式内网环境:192 . 168 . 1 . 1:8080/index . html外网环境:domain.com/ttsd/index.html
由于开发的项目将部署在客户端,并且客户端不希望使用单个域名(或子域)进行部署,因此打包的程序将必须进行一些配置修改。
修改配置文件
1.将打包的资源引用修改为相对路径,并在config/index.js中的build属性下找到assetsPublicPath
构建:{...assets public path:& # 039;。/'//未修改的配置是& # 039;/',}
2.修改资源文件(图片、视频、字体文件等。)来查找build/utils.js中的相对路径,并将publicPath添加(或修改)到& # 039;../../'
if(options . extract){ return extract plugin . extract({ use:loaders,fallback:& # 039;vue -style -loader & # 039;,公共路径:& # 039;../../'//修改路径})}否则{return
修改路线
在路由的历史模式下,所有路由都基于根路径,如/xxxx。因为部署目录是未知的,所以我们可以根据location.pathname获取当前访问文件的路径来修改路径。
vue -路由器中提供了一个基本属性。
基本类型:字符串默认值:"/& quot;应用程序的基路径。例如,如果整个单页应用程序服务在/app/下,那么base应该设置为“/app/& quot;。
修改路由代码
函数getAbsolutePath(){ let path = location . pathname返回path.substring(0,path . lastindexof(& # 039;/')+ 1)}const routers =新路由器({ mode:& # 039;历史& # 039;,base: getAbsolutePath(),...})至此,打包配置的相关修改全部完成,项目可以正常访问。但是仍然会有一个问题。跳到某条路线后,刷新页面,就gg了。这页是空白的。此时,nginx的配置将被修改。
修改nginx的配置
nginx官方配置在根目录,即https://router . vue js . org/zh-cn/essentials/history -mode . html # nginx
location/{ try _ files $ uri $ uri//index . html;//需要修改为try _ files $ uri $ uri//dist/index . html;}注:/dist根据实际部署的网站目录,修改即可。个人感受也可以通过nginx内置的指令动态获取,不过现在还不清楚。
相信你看完这个案例已经掌握了方法。更多精彩请关注即时码站其他相关文章!
推荐阅读:
VuePress制作个人网页。
如何绑定箭头键来控制div移动
评论前必须登录!
注册