美文网首页
Vue 处理资源路径

Vue 处理资源路径

作者: _小海绵 | 来源:发表于2020-10-14 17:45 被阅读0次

处理资源路径

当你在js、css 或者*.vue文件中使用相对路径(必须以 . 开头)引用一个静态资源时,该资源将被webpack处理。

转换规则

  • 如果URL是一个绝对路径,它将会被保留不变。
<img alt="logo" src="/assets/logo.png"/>
<img alt="logo" src="https://image.xxx.com/logo.png"/>
  • 如果URL以 . 开头会作为一个相对模块请求被解释并基于文件系统的相对路径。
<img alt="logo" src="./assets/logo.png"/>
  • 如果URL以 ~ 开头会作为一个模块请求被解析。这意味着你甚至可以Node模块中的资源。
<img alt="logo" src="~some-npm-package/logo.png"/>
  • 如果URL以 @ 开头会作为一个模块请求被解析。Vue Cli默认会设置一个指向 src 的别名 @。
<img alt="logo" src="@/component/logo.png"/>

通过webpack处理并获取有如下好处:

  • 脚本和样式表会被压缩且打包在一起,从而避免额外的网络请求。
  • 文件丢失会直接在编译的时候报错,而不是产生404错误。
  • 最终生产的文件名称包含了内容哈希值,不必担心浏览器有缓存。

有如下情况时,请考虑将资源放置在public文件夹下

  • 需要在构建输出中一个固定的文件名字。
  • 有大批量的图片,需要动态引用他们的路径。
  • 有些库与webpack不兼容,需要用独立的script标签将其引入。

使用public文件夹的注意事项

  • 如果你的程序没有部署在域名的根目录,那么需要为URL配置 publicPath 前缀
// vue.config.js
module.exports = {
    publicPath:process.env.NODE_ENV === 'production'
    ? '/路径/'
    :'/'
}
  • 在 public/index.html 等通过 html-webpack-plugin 用作模版的 HTML页面中,你需要设置链接前缀。
<link rel='icon' href="<%= BASE_URL =%>favicon.ico">

相关文章

网友评论

      本文标题:Vue 处理资源路径

      本文链接:https://www.haomeiwen.com/subject/lbvwpktx.html