vue-router的base和vue.config.js的publicPath区别和联系

53 篇文章 3 订阅
订阅专栏

vue-router的base和vue.config.js的publicPath区别和联系

  vue-router的base官方文档解释:

base
类型: string

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

  vue.config.js的publicPath官方文档解释:
在这里插入图片描述

1.只设置vue-router的base配置

  配置路由基准路径为app,vue.config.js配置文件的publicPath为相对路径。
  路由配置:

const router = new VueRouter({
  mode: 'history',
  base: '/app',
  routes
})

  vue.config.js配置:

module.exports = {
  publicPath: './',
  /* 输出文件目录:在npm run build时,生成文件的目录名称 */
  outputDir: 'dist',
  /* 放置生成的静态资源 (js、css、img、fonts) 的 (相对于 outputDir 的) 目录 */
  assetsDir: 'assets',
  /* 是否在构建生产包时生成 sourceMap 文件,false将提高构建速度 */
  productionSourceMap: false,
  /* 默认情况下,生成的静态资源在它们的文件名中包含了 hash 以便更好的控制缓存,你可以通过将这个选项设为 false 来关闭文件名哈希。(false的时候就是让原来的文件名不改变) */
  filenameHashing: false,
  /* 代码保存时进行eslint检测 */
  lintOnSave: true
  /* webpack-dev-server 相关配置 */
}

  用http-server(一个本地小型服务器插件)启动dist下打包后的代码
在这里插入图片描述
  访问http://10.1.2.56:8080/app 路径,发现访问不到页面在这里插入图片描述
  访问http://10.1.2.56:8080/路径,却可以访问到页面

在这里插入图片描述
  在dist下新增添一个app目录,把dist下文件放到app下,相当于一个文件的路径
在这里插入图片描述

  访问http://10.1.2.56:8080/app 路径,现在可以访问到页面了
在这里插入图片描述
  访问http://10.1.2.56:8080 路径,也可以访问页面
在这里插入图片描述
  如果在把 base: ‘/app’,改为base: ‘/’,并且和上面一样在dist下新增添一个app目录,把dist下文件放到app下。
  访问http://10.1.2.56:8080 路径,是访问不到页面的,如下:
在这里插入图片描述
   总结:如果整个单页应用服务在 /app/ 下(可以理解为放在app文件夹下),然后 base 就应该设为 “/app/”,这样设置之后,通过ip+端口/app,可以访问到页面,也即是项目基座路径就是/app,而且即是你不通过基准路径访问项目也可以,效果和通过基准路径是一样的。

2.只设置vue.config.js的publicPath

  路由配置:

const router = new VueRouter({
  mode: 'history',
  base: '/',
  routes
})

  vue.config.js配置:

module.exports = {
  publicPath: '/app',
  /* 输出文件目录:在npm run build时,生成文件的目录名称 */
  outputDir: 'dist',
  /* 放置生成的静态资源 (js、css、img、fonts) 的 (相对于 outputDir 的) 目录 */
  assetsDir: 'assets',
  /* 是否在构建生产包时生成 sourceMap 文件,false将提高构建速度 */
  productionSourceMap: false,
  /* 默认情况下,生成的静态资源在它们的文件名中包含了 hash 以便更好的控制缓存,你可以通过将这个选项设为 false 来关闭文件名哈希。(false的时候就是让原来的文件名不改变) */
  filenameHashing: false,
  /* 代码保存时进行eslint检测 */
  lintOnSave: true
  /* webpack-dev-server 相关配置 */
}

  配置路由基准路径为/相对路径,vue.config.js配置文件的publicPath为app。

  访问http://10.1.2.56:8080/,报如下错误
在这里插入图片描述
  从上面可以得知,静态资源文件都是在app下的,所以在dist下新增添一个app目录,把dist下文件放到app下,相当于一个文件的路径,可以发现项目会正常启动。

在这里插入图片描述

  访问http://10.1.2.56:8080/
在这里插入图片描述

  访问http://10.1.2.56:8080/app/
在这里插入图片描述
  点击Home,访问效果如下:
在这里插入图片描述

  总结:如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.my-app.com/app/,则设置 publicPath 为 /app/。如果nginx,一般nginx都会配置一个静态资源目录,打包后的文件都会放到这个静态资源目录里面,nginx去做映射,所以publicPath这个属性基本不用改。’/'就行

2.同时设置vue-router的base配置和vue.config.js的publicPath

  路由配置:

const router = new VueRouter({
  mode: 'history',
  base: '/app',
  routes
})

  vue.config.js配置:

module.exports = {
  publicPath: '/app',
  /* 输出文件目录:在npm run build时,生成文件的目录名称 */
  outputDir: 'dist',
  /* 放置生成的静态资源 (js、css、img、fonts) 的 (相对于 outputDir 的) 目录 */
  assetsDir: 'assets',
  /* 是否在构建生产包时生成 sourceMap 文件,false将提高构建速度 */
  productionSourceMap: false,
  /* 默认情况下,生成的静态资源在它们的文件名中包含了 hash 以便更好的控制缓存,你可以通过将这个选项设为 false 来关闭文件名哈希。(false的时候就是让原来的文件名不改变) */
  filenameHashing: false,
  /* 代码保存时进行eslint检测 */
  lintOnSave: true
  /* webpack-dev-server 相关配置 */
}

  配置路由基准路径为app,vue.config.js配置文件的publicPath为app。
  访问http://10.1.2.56:8080/地址效果如下:在这里插入图片描述

  从上面可以得知,静态资源文件都是在app下的,所以还是和上面环节一样在dist下新增添一个app目录,把dist下文件放到app下,相当于一个文件的路径,可以发现项目会正常启动。

  访问http://10.1.2.56:8080/地址效果如下:
在这里插入图片描述
  访问http://10.1.2.56:8080/app/地址效果如下:
在这里插入图片描述
  总结,当访问http://10.1.2.56:8080/app/可以看到Home页面内容,证明项目基准路径base: ‘/app’ 起作用了,而只设置了vue.config.js的publicPath当访问http://10.1.2.56:8080/app/是看不到home页面内容的。这就是同时设置vue-router的base配置和vue.config.js的publicPath的效果。

vue-base-project.zip
03-11
根目录下vue.config.js文件中搜索proxy属性,已添加案例 项目编译自动打包zip文件 已配置,build操作后自动在项目根目录生成zip文件 项目title 固定配置方法:setting.js文件中配置title属性。 通过路由动态配置...
vue3:基于vue3+vue-router4+webpack4+vant搭建的手机端基础框架
05-08
入口文件是index.less,自定义的css问津需要导入到index.less才会生效4、util文件夹主要是以下常用的工具类(待完善)5、router.js是路由配置文件6、env.* 三个文件是根据不同环境的配置,主要是配置VUE_APP_BASE_URL...
vue Router 配置项base
mylbest的博客
09-02 871
vue routerbase
Vue Router 4 与 Router 3 路由配置与区别
最新发布
猫老板的豆
04-12 542
Composition API 的集成:Vue Router 4 提供了更好的对 Vue 3 Composition API 的支持,允许你使用。与 Vue 版本的兼容性:Vue Router 4 是专门为 Vue 3 设计的,而 Vue Router 3 与 Vue 2 兼容。TypeScript 支持:Vue Router 4 对 TypeScript 提供了更好的支持,类型定义更加完整和准确。路由守卫的改进:Vue Router 4 改进了路由守卫(导航守卫)的 API,提供了更多的灵活性和控制。
Vue全家桶之Vue基础(1)
Amo Xiang的博客
08-17 8966
目录1. 目标2. Vue概述3. Vue基本使用4. Vue模板语法4.1 指令4.1.1 v-cloak指令用法5. 基础案例6. Vue常用特性7. 综合案例 1. 目标 通过本文,读者可以掌握以下的相关技能: 能够说出 Vue 的 基本用法 能够说出 Vue 的 模板语法 能够说出 Vue 的 常用特性 能够基于 Vue 实现 案例效果 2. Vue概述 优秀的一款 国产 框架,接下来我们就满怀敬意的去了解一下 Vue 的作者。 尤雨溪,著名渐进式 JavaScript 框架 vuejs.or
Vue2 系列:vue.config.js 参数配置
weixin_64684095的博客
06-29 8798
注意:其值应该是一个对象,对象的 key 是入口的名字,value 是:1.一个指定了 entry, template, filename, title 和 chunks 的对象 (除了 entry 之外都是可选的);说明:部署应用包时的基本 URL,例:https://www.my-app.com/my-app/,则设置 publicPath 为 /my-app/说明:放置生成的静态资源 (js、css、img、fonts) 的 (相对于 outputDir 的) 目录。默认值:'index.html'
Vue学习之VueRouter的基本用法(多而全)
five-five
03-16 3297
重定向是指将一个路由重定向到另一个路由,可以是一个字符串或者一个路由配置对象。在Vue Router中,我们可以在路由配置中使用。路由元信息是指在路由配置中定义的一些额外信息,例如页面标题、页面描述、页面关键字等。命名路由是指在路由配置中为路由命名,以便在代码中使用。在Vue Router中,我们可以通过配置子路由来实现路由嵌套。在Vue Router中,我们可以在路由配置中使用冒号。这个方法会在每次路由跳转后执行,可以用来做一些页面切换后的处理,例如页面滚动到顶部等。在该函数中,可以指定返回的位置。
vue.config.js 全局配置
m0_61177365的博客
07-29 4522
用法和 webpack 本身的 output.publicPath 一致,但是 Vue CLI 在一些其他地方也需要用到这个值,所以始终使用 publicPath 而不要直接修改 webpack 的 output.publicPath。例如,如果你的应用被部署在 https://www.my-app.com/my-app/,则设置。可以看出,开启productionSourceMap后,浏览器控制台明确的告诉我们test这条结果的输出语句在main.js的20行。所以,source map的作用就是定位。
vue.config.js配置选项
GQDD99的博客
02-18 190
vue.config.js配置选项
vue-mix-pages:基于vue2的多页+单页混合应用框架
02-05
项目结构│├─build /* webpack的配置目录 */│ ├─config.js /* 公共常量,用于配置文件 */│ ├─utils.js /* 工具函数,用于配置文件 */│ ├─webpack.base.conf.js /* 公共配置文件 */│ ├─webpack.dev....
安卓java读取网页源码-vue5:vue知识点
06-06
安卓java读取网页源码 ...在webpack-base.config.js配置文件中加多一个拓展:extenstion, 再加多一个模块:module里面test、loader 4.1、scss是什么?在vue.cli中的安装使用步骤是?有哪几大特性? 答:css的预
base:Vue2.0基础开发架构
05-08
Vue2.x+Vue-router2.x+webpack2.x脚手架 一、文件目录 │ .gitignore # git提交忽略文件 │ package.json # 项目配置 │ README.md # 项目说明 ...│ ├─ webpack.base.config.js # webpack 参数配置 │ │
Vue Router框架原理及解析
多看多听多总结
07-24 811
Vue Router在路由切换时的处理
VueRouter的实现原理——封装简易功能的VueRouter
航诚的博客
04-25 2376
VueRouter的实现原理Hash模式和History模式的区别表现形式的区别原理的区别History 模式的使用node 环境下支持 historyNginx 下支持 historyVueRouter 两种模式的实现原理Hash 模式History 模式实现思路VueRouter-install 方法实现 Hash模式和History模式的区别 不管哪种模式,前端路由都是客户端路由的实现方式,也就是当路径发生变化时,不会向服务器发送请求,是利用js监视路径的变化。然后根据不同的地址渲染不同的内容,如果需
vue路由配置
weixin_54714100的博客
08-10 146
路由配置:router.config.js。代码:index.js。获取component。
Vue路由(vue-router)详细讲解指南
精选资讯文章
06-05 6455
酷的同时也会给我们带来一些问题,因为使用路由参数时,从/user/xianyu导航到/user/mengxiang,原来的组件实例会被复用,两个路由都渲染同个组件,比起销毁再创建,显示复用显得效率更高,带来的的只管问题就是生命周期钩子函数不会再被调用,也就是不会再被触发;就这样,我们的页面就可以进行路由跳转和切换了,路由的基本使用就完成了;重定向实际上是当匹配到路径符合条件的时候去执行对应的路由,当然这个时候的url上面的地址显示的是对应的路由,页面也是对应的路由页面;
vue使用axios请求相关配置文件包括跨域配置
qq_37533576的博客
07-13 2336
对axios进行封装方便后续使用(request.js) import axios from 'axios' const request = axios.create({ timeout: 5000 }) // request 拦截器 // 可以自请求发送前对请求做一些处理 // 比如统一加token,对请求参数统一加密 request.interceptors.request.use(config => { config.headers['Content-Type'] = '
vue-router 简单使用
11-23
以下是Vue Router的简单使用方法: 1.安装Vue Router ```shell npm install vue-router --save ``` 2.创建路由 在项目的src目录下创建一个router文件夹,然后在该文件夹下创建一个index.js文件,用于定义路由。 ```javascript import Vue from 'vue' import VueRouter from 'vue-router' Vue.use(VueRouter) const routes = [ { path: '/', name: 'Home', component: () => import('../views/Home.vue') }, { path: '/about', name: 'About', component: () => import('../views/About.vue') } ] const router = new VueRouter({ mode: 'history', base: process.env.BASE_URL, routes }) export default router ``` 3.在Vue项目中使用路由 在main.js中导入路由并挂载到Vue实例上。 ```javascript import Vue from 'vue' import App from './App.vue' import router from './router' Vue.config.productionTip = false new Vue({ router, render: h => h(App) }).$mount('#app') ``` 4.在Vue组件中使用路由 在Vue组件中使用$router和$route对象。 ```javascript <template> <div> <router-link to="/">Home</router-link> <router-link to="/about">About</router-link> <router-view></router-view> </div> </template> <script> export default { name: 'App', mounted() { console.log(this.$router) // 输出路由实例 console.log(this.$route) // 输出当前路由信息 } } </script> ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • vue引入css三种方式 47687
  • 创建表时附带的ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic 的解释 34923
  • mysql(zip版)下载安装教程 23875
  • 高等数学之映射 20309
  • SpringBoot之使用Redisson实现分布式锁(含完整例子) 18899

分类专栏

  • vue 53篇
  • js 4篇
  • 设计模式 17篇
  • 前端面试
  • html 14篇
  • vscode 5篇
  • uni-app 28篇
  • java 47篇
  • git 2篇
  • 前端代码规范
  • 微信小程序 2篇
  • css 4篇
  • axios 1篇
  • webpack 2篇
  • css3 2篇
  • IT 4篇
  • ArcGIS
  • docker 2篇
  • oracle 4篇
  • 算法 1篇
  • nexus 4篇
  • nginx 2篇
  • linux 3篇
  • springboot 3篇
  • rabbitmq 1篇
  • mysql 10篇
  • redis 1篇
  • erlang 1篇
  • springcloud 2篇
  • UML
  • ant 1篇
  • maven 2篇
  • xml 1篇
  • python 1篇

最新评论

  • 前端项目引入字体

    qq_38801168: 字体文件不提供一下?

  • 前端项目引入字体

    后来就忘了: 我不用字体文件了,不过,你可以把文件上传到服务器,然后你引入链接也可以

  • 前端项目引入字体

    qwe_177: 对啊,这么大一个。请问解决了吗

  • uni-app解决跨域问题

    赤诚恳哈: 有是参加湖南省移动应用开发比赛的吗,还没搞明白这个跨域接口怎么弄,大一表示只学过一点点根本看不懂

  • mysql(zip版)下载安装教程

    Unexpired Love: 高质量博文,受益匪浅

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • 高中数学之向量
  • 博客摘录「 坐标变换与基变换」2023年6月8日
  • 基础数学之三角函数
2023年2篇
2022年12篇
2021年100篇
2020年107篇
2019年7篇

目录

目录

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳SEO优化公司昭通网站推广方案价格黔南网站制作哪家好承德网站搭建价格民治网站定制哪家好苏州高端网站设计公司抚顺企业网站制作多少钱衡水网站开发三亚百姓网标王推广公司本溪网站优化按天扣费报价沧州设计网站价格霍邱阿里店铺托管多少钱承德网站优化推广哪家好平湖关键词按天计费报价鹰潭网站改版推荐锦州品牌网站设计新余seo排名报价西安网站推广公司徐州外贸网站制作海南模板网站建设推荐邵阳百姓网标王推荐大鹏网站优化推广推荐泰州seo网站推广推荐垦利seo排名报价赤峰网络广告推广推荐宁德网站改版推荐临沂SEO按效果付费推荐贵阳网站优化报价锦州模板推广推荐南山设计公司网站价格平湖seo优化歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化