关注分享主机优惠活动
国内外VPS云服务器

编译后实际项目不在根目录下怎么办?

这次编译后实战项目不在目录下怎么办?实战项目编译不在根目录下有哪些注意事项?下面是实战案例。让我们来看看。

例如:

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移动

未经允许不得转载:主机频道 » 编译后实际项目不在根目录下怎么办?

评论 抢沙发

评论前必须登录!