在使用vue脚手架时为啥不能加载favicon.ico图标
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在使用vue脚手架时为啥不能加载favicon.ico图标相关的知识,希望对你有一定的参考价值。
你是怎么写的? favicon.ico 图片有两种情况,一种是直接把图标文件放在站点根目录下,这种情况下页面中不需要写任何内容,支持ico图标的浏览器会自动读取到。一种是图标文件不在根目录,而是在特定的文件夹下,这种情况需要使用 link 标签来引入,href 属性中写路径地址。
如果你使用的是第二种情况的话,使用 vue 脚手架生成项目之后,手动修改一下 index.html 文件,把 link 标签加上应该就没问题了。 参考技术A
将你的 favicon.ico 放在static文件里 , 在webpack.dev.conf.js 中写成
new HtmlWebpackPlugin(
filename: 'index.html',
template: 'index.html',
inject: true,
favicon: './static/favicon.ico'
)
index.html里添加
<link rel="shortcut icon" type="image/x-icon" href="./static/favicon.ico" rel="external nofollow" />
dev环境 和build 后都能看到你的favicon.ico
vue-router的使用
项目文件结构:
vue.config.js 用于配置路径指向 注意:这里的文件名不能自定义
vue-router的安装
这个项目用的是vue-cli3脚手架的项目结构可以选择安装 vue 和 vue-router
vue-router的安装 npm i –S vue-router --运行依赖的安装
路由文件的抽离 router/index.js
相关路由模块的导入
路由组件导入时的路由懒加载写法:
const Home = () => import(‘../components/Home.vue‘)
在vue模块中安装路由
路由映射配置:
路由重定向:
路由嵌套:
注意:路由嵌套时,children中的path可以不加斜杆
动态路由:
创建路由对象
vue实例中注入路由 main.js
最后暴露自定义的路由实例
export default router
html页面中路由的应用 => 路由跳转
router-link标签 用来进行路由跳转
router-view标签 用来展示路由组件
router-link 属性 (to:跳转路径 ,tag:渲染出来的标签,默认是a标签
replace:点击后不会创建history对象,即不能后退)
to属性绑定对象:
请注意:用path属性指定路径后,params属性就不生效了
对象中可以通过name来指定要跳转的路由,前提是路由映射配置要用name设置命名路由
通过自定义方法来定义路由的跳转
关键字 => $router 方法push replace back forward go
push:跳转某个路由
replace:跳转某个路由但是不生成history对象
back:返回到上一个history对象
forward:前进到下一个history对象
go:整形参数n 可传负数 正数forward n 个history对象
负数back n 个 history对象
路由传值的获取
关键字:$route
- $route.path
字符串,等于当前路由对象的路径,会被解析为绝对路径,如"/home/news"
。 - $route.params
对象,包含路由中的动态片段和全匹配片段的键值对 - $route.query
对象,包含路由中查询参数的键值对。例如,对于/home/news/detail/01?favorite=yes
,会得到$route.query.favorite == ‘yes‘
。 - $route.router
路由规则所属的路由器(以及其所属的组件)。 - $route.matched
数组,包含当前匹配的路径中所包含的所有片段所对应的配置参数对象。 - $route.name
当前路径的名字,如果没有使用具名路径,则名字为空。
路由全局导航守卫 => 路由钩子函数
./router/index.js
beforeEach每次路由跳转前要执行的函数
afterEach每次路由跳转后要执行的函数
参数:fn(to,from,next)
to跳转目标路由对象 => route对象
from跳转来源路由对象 => route对象
next函数,决定 继续跳转 还是中断跳转 还是重定向跳转
这里实现了网页title随路由跳转而动态变化
用to获取了要跳转的路由对象中meta元数据对象中的title
meta中有数据是因为事先已经在路由映射的配置中,给meta对象添加了数据
路由组件守卫 => 路由组件钩子函数
路由跳转时调用当前的路由组件时触发,参数定义与路由全局导航守卫一致
路由私有守卫
路由跳转到当前有定义路由私有守卫的路由时触发,参数与上面一致
补充keep-alive标签的作用
被keep-alive标签包裹的router-view标签中的组件对象不会随着路由跳转而被销毁
exclude可以用来排除路由组件 include用来包括路由组件 以此决定保护那些组件对象
取值是conponent名 ,也就是路由映射配置中的component
被keep-alive标签包裹的组件对象,因为组件对象被保存了下来,因此失去了created()
destroyed()组件钩子函数的作用,于是多了activated()和deactivated()的钩子函数
来判断当前组件是否处于显示状态。
下面是在Home组件中定义的actived():
以上是关于在使用vue脚手架时为啥不能加载favicon.ico图标的主要内容,如果未能解决你的问题,请参考以下文章