Vue项目编译后部署在非网站根目录的解决方案

news/2024/4/27 18:30:15/文章来源:https://blog.csdn.net/weixin_34366546/article/details/88841987

背景

同一个生产部署项目,基内外网的访问路径并不相同,内网是基于域名根目录来访问,而外网却指向了一个子目录。

eg. :

vue-router: history模式
内网环境:192.168.1.1:8080/index.html
外网环境:domain.com/ttsd/index.html

由于开发出来的项目是要部署在客户方,且客户并不想单独拿一个域名(或子域)来部署,这时,打包后的程序就要作一些配置方面的修改了。

修改配置文件

1、把打包后的资源引用修改为相对路径
找到config/index.jsbuild属性下的 assetsPublicPath

build: {...assetsPublicPath: './'  // 未修改前的配置为 '/',
}

clipboard.png
2、修改样式引用的资源文件(图片、视频、字体文件等)为相对路径
找到build/utils.js中,添加(或修改)publicPath'../../'

if (options.extract) {return ExtractTextPlugin.extract({use: loaders,fallback: 'vue-style-loader',publicPath: '../../' // 修改路径})
} else {return ['vue-style-loader'].concat(loaders)
}

clipboard.png

修改路由

在路由的history模式下,所有的路由都是基于根路径的,如/xxxx,由于部署目录未知,所以我们可以根据location.pathname来获取到当前访问的文件路径,来修改路由。

vue-router里提供了一个base的属性

base
类型: string
默认值: "/"
应用的基路径。例如,如果整个单页应用服务在 /app/ 下,然后 base 就应该设为 "/app/"

修改路由代码

function getAbsolutePath () {let path = location.pathnamereturn path.substring(0, path.lastIndexOf('/') + 1)
}const routers = new Router({mode: 'history',base: getAbsolutePath(),...
})

至此,打包配置的相关修改已全部完成,项目也能够正常访问。
但还是会有一个问题,跳转到某个路由后,刷新页面,就gg了,页面为空白,此时就要修改nginx的配置了。

修改nginx的配置

官方给的nginx配置是根目录下的,即https://router.vuejs.org/zh-c...

location / {try_files $uri $uri/ /index.html;// 需要修改为try_files $uri $uri/ /dist/index.html;
}

注:/dist 根据实际部署的网站目录,修改一下就可以。
个人感觉还可以通过nginx内置的指令去动态获取,在下就不太清楚了。

参考文章:
vue+webpack+nginx 部署在服务器非根目录下访问404问题
vue-cli webpack模板项目搭建以及打包时路径问题的解答

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_755080.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mouseover,mouseout,mouseenter,mouseleave的区别

相信做前端开发的都听说过“冒泡型事件”吧,《JavaScript高级程序设计》第九章有详细的讲述,但是,在学习的时候一知半解,也没详细去理解,导致最近在工作中碰到了问题:有许多 li 标签,标签上有2个…

吉林社科规划网站转换计划

概述<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />吉林社科网站:http://www.jlpopss.gov.cn是本人开发&#xff08;后台代码&#xff0c;非界面设计&#xff09;并长时间维护的网站&#xff0c;根据以前开发的经验决定对系统进…

团队项目(MVP-----------新能源汽车无线充电管理网站)个人任务(6)

本周任务&#xff1a;该周是项目完善的最后一周&#xff0c;本周主要的任务是继续优化界面&#xff0c;注意一些细节上的处理。 Github地址&#xff1a;https:/github.com/xiangbaobaojojo/car转载于:https://www.cnblogs.com/Ci0Yu/p/8079105.html

如何把canvas元素作为网站背景总结详解

如何把canvas元素作为网站背景总结详解 一、总结 一句话总结&#xff1a;最简单的做法是绝对定位并且z-index属性设置为负数。 1、如何把canvas元素作为网站背景的两种方法&#xff1f; a、设置层级&#xff08;本例代码就是用的这种方法&#xff09;&#xff1a; position:abs…

昆明网站建设公司排名榜

我作为昆明地区的一个网站开发人员&#xff0c;在昆明已经有3年的网站开发经验了&#xff0c;对于昆明网站建设公司或多或少的都有所了解&#xff0c;或是自己接触&#xff0c;或是听朋友介绍&#xff0c;或是同事的经验&#xff0c;在加上自己的面试过的公司&#xff0c;对昆明…

linux实战考试题:统计一个网站每小时的PV数量-看看你会么?

老男孩教育第三关课后实战考试题练习&#xff1a;请统计老男孩老师的博客 http://oldboy.blog.51cto.com/ 博客每小时所有用户访问的pv数量&#xff08;统计样本5个小时以上&#xff09;。 要求&#xff1a;老男孩20-21期的学生必答题&#xff08;务必自己搞出来&#xff0c;能…

360浏览器插件开发_360浏览器中SEO优化插件如何安装

今天网校同学陈总来到我公司做客&#xff0c;双方交流下2019年各自企业运营发展战略方向&#xff0c;谈到关于网站优化方面的知识&#xff0c;他查看了下我们曾经做过的危险品货代公司网站的排名&#xff0c;他看到我电脑的浏览器上有SEO插件&#xff0c;查看优化信息非常方便&…

常见网络工程师面试题:电脑是如何访问网站的?

咱们网络工程师去面试的时候&#xff0c;经常会有面试官问到&#xff1a;请尽可能详细的介绍&#xff0c;一台pc从开机&#xff0c;到打开csdn主页的过程&#xff01; 那什么样的回答才能让面试官满意呢&#xff1f; 大家可以看看下面的参考回答~ &#xff08;1&#xff09; 首…

网工面试题:主机访问网站的数据流分析是什么样的?有哪些注意事项?

哈喽&#xff0c;大家好&#xff0c;我是网工学姐~ 今天给大家整理了一些面试技巧&#xff0c;大家要是觉得好可以点赞收藏哦&#xff01; 访问面试中常见的一些面试题&#xff1a;主机访问网站的数据流分析是什么样的&#xff1f; 参考答案&#xff1a; 1、打开主机&#xff0…

网站建设:简单动态网站搭建

2019独角兽企业重金招聘Python工程师标准>>> 通过前面Clouder课程的学习&#xff0c;或许你已经掌握了在云服务器上发布和部署静态网页的方法&#xff0c;那么如何搭建一个可以随时更新内容的动态网站&#xff1f;通过本课程的学习&#xff0c;你将掌握如何在云端搭…

PayPal网站付款标准版(for PHP)

原文:PayPal网站付款标准版(for PHP)简单整理一下PHP项目整合PayPal支付功能。 一、表单的构建&#xff1a; <form method"post" name"form" action"https://www.paypal.com/cgi-bin/webscr"> <input type"hidden" name"…

Yahoo!网站性能最佳体验的34条黄金守则之内容篇

2019独角兽企业重金招聘Python工程师标准>>> Yahoo!的Exceptional Performance团队为改善Web性能带来最佳实践。他们为此进行了一系列的实验、开发了各种工具、写了大量的文章和博客并在各种会议上参与探讨。最佳实践的核心就是旨在提高网站性能。 Excetional Perfo…

网市场云建站 v4.8 增加私有模版库,开放 Mysql 配置、在线客服源码

网市场云建站系统&#xff0c;结合各种产品&#xff0c;将一个网站的服务器成本降低到0.1元&#xff01;打破传统建站的高成本&#xff0c;让价格不再是阻碍的门槛&#xff0c;让每个人都能有自己的网站&#xff01; 延续了帝国CMS、织梦CMS优秀的模板流程&#xff0c;模板页面…

北京网站域名服务器,北京域名服务器

北京域名服务器 内容精选换一换内网域名解析是基于VPC网络的域名解析过程&#xff0c;通过华为云内网DNS把域名(如ecs.com)转换成私网IP地址(192.168.1.1)。内网域名解析实现云服务器在VPC内直接通过内网域名互相访问。同时&#xff0c;还支持不经公网&#xff0c;直接通过内网…

微服务架构实践:从零搭建网站扫码登录

微信扫码登录大家都是应用比较多的登录方式了&#xff0c;现在大的购物网站像京东、淘宝等都支持使用APP扫码登录网站了。今天就用APP扫码登录网站的实例来举例说明微服务架构的搭建过程。 微服务架构应该是什么样子 在这之前先看一看一个微服务架构落地以后应该是什么样子的。…

基于http的web静态网站的搭建

在平常访问网站时&#xff0c;我们输入一个网址就可以看到我们想要看到的东西&#xff0c;但是&#xff0c;大家知道我们是如何获取到这些信息的嘛&#xff0c;跟着我一起来了解下吧 网址的意义 浏览器与服务器的交互 搭建流程 |----搭建环境&#xff1a;redhat7.x. |----搭建…

基于https的web静态网站的搭建

http协议是以明文方式发送的&#xff0c;不提供任何的加密方式&#xff0c;而https确正好弥补了这种缺陷&#xff0c;httpshttpssl ssl的作用 客户端与服务端的认证过程 **验证过程**&#xff1a; 客户端请求建立&#xff0c;不可能不请求服务器就直接给响应 然后进行三次握手…

开发asp.net2.0手机用网站 点滴[xgluxv]

最近一段时间一直在做一个给手机浏览的网站基于asp.net2.0,现在第一期已经到尾声&#xff0c;说说开发的感想。客户要求只要支持wap2.0的手机都能浏览&#xff08;我刚开始想他们应该说得是属于智能手机级别的都能浏览&#xff0c;后来发现有点不对&#xff0c;他们的测试机很多…

浅析ASP网站后台设计

2019独角兽企业重金招聘Python工程师标准>>> 现在学习ASP语言很少啦&#xff0c;逐渐被PHP&#xff0c;asp.net&#xff0c;jsp所代替。 这里介绍ASP网站后台设计技巧 &#xff11;.用户名规则&#xff1a; 字符大于4&#xff0c; 不能在黑名单里&#xff08;比如…

为 Drupal 7 网站添加自定义CSS

当我们在逛聊天室或者论坛时&#xff0c;经常会碰到有人提问怎么向 Drupal 网站中添加自定义CSS —— 通常来讲&#xff0c;通过 Drupal 主题来进行添加最好。不过在某些情况下&#xff0c;因为环境限制或网站管理员没有访问主题文件的权限&#xff0c;而不得不考虑其它办法。 …