处理静态资产

你可能已经注意到,在项目结构中我们有两个静态资产目录:src/assetsstatic/。他们之间有什么区别?

要回答这个问题,我们首先需要了解Webpack如何处理静态资产。在*.vue组件中,您的所有模板和CSS都会被解析vue-html-loadercss-loader查找资产URL。例如,在<img src="./logo.png">和中background: url(./logo.png)"./logo.png"是一个相对资产路径,将由Webpack解析为模块依赖项。

因为logo.png不是JavaScript,当被视为模块依赖时,我们需要使用url-loaderfile-loader处理它。此模板已经为您配置了这些加载器,因此您可以免费获得文件名指纹识别和条件base64内联等功能,同时可以使用相对/模块路径而无需担心部署。

由于这些资产可能在构建期间内联/复制/重命名,因此它们本质上是源代码的一部分。这就是为什么建议将Webpack处理的静态资源放在/src其他源文件中。实际上,您甚至不需要全部放入/src/assets:您可以使用它们基于模块/组件来组织它们。例如,您可以将每个组件放在其自己的目录中,其静态资源就在它旁边。

“真正的”静态资产

相比之下,static/Webpack根本不处理文件:它们按原样直接复制到最终目标,文件名相同。必须使用绝对路径引用这些文件,绝对路径由join build.assetsPublicPathbuild.assetsSubDirectoryin 确定config.js

例如,使用以下默认值:

// config/index.js
module.exports = {
// ...
build: {
assetsPublicPath: '/',
assetsSubDirectory: 'static'
}
}

放入的任何文件static/都应使用绝对URL引用/static/[filename]

注意:如果更改assetSubDirectoryassets,则需要将这些URL更改为/assets/[filename]

应用:

在src/components/ele.vue中,data数据里引入文件数据

imgsUrl:[
{src:'../static/imgs/02.jpg'},
{src:'./static/imgs/03.jpg'},
{src:'http://www.pptok.com/wp-content/uploads/2012/08/xunguang-4.jpg'}
]

第一行为相对路径,第二行为使用绝对URL引用./static/[filename],第三行为网上图片路径。

建议做法为:绝对URL引用./static/[filename]

补充:

在原来的绝对URL引用/static/[filename]基础上,在最之前添加了一个点.,因为vue项目打包后,如果不加.,无法正确获取图片等静态资源路径。

.

vue+webpack静态资源路径引用的更多相关文章

  1. vue打包静态资源路径不正确的解决办法

    vue打包静态资源路径不正确的解决办法 vue项目完成打包上线的时候会碰到静态资源找不到的问题,常见的有两个 1.js,css路径不对 解决办法:打开config/index.js,将其中的asset ...

  2. vue打包静态资源路径不正确的解决办法【转】

    vue项目完成打包上线的时候很多人都会碰到静态资源找不到的问题,常见的有两个 1.js,css路径不对 解决办法:打开config/index.js,将其中的assetsPublicPath值改为’. ...

  3. Vue Cli 打包之后静态资源路径不对的解决方法

    cli2版本: 将 config/index.js 里的 assetsPublicPath 的值改为 './' . build: { ... assetsPublicPath: './', ... } ...

  4. 用node.js express设置路径后 子路径下的页面访问静态资源路径出问题

    在routes/news_mian.js 设置了访问news_main.html 的路径 '/',通知设置一个访问news-page.html的子路径'/newspage'子路径.但是在访问loacl ...

  5. webpack打包绝对路径引用资源和element ui字体图标不显示的解决办法

    webpack打包绝对路径引用资源解决办法: 打开webpack.prod.conf.js 找到output:增加 publicPath: './',  即可,如图  element ui字体图标不显 ...

  6. Spring boot 默认静态资源路径与手动配置访问路径的方法

    这篇文章主要介绍了Spring boot 默认静态资源路径与手动配置访问路径的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下   在application.propertis中配置 ##端口号 ...

  7. springboot之静态资源路径配置

    静态资源路径是指系统可以直接访问的路径,且路径下的所有文件均可被用户直接读取. 在Springboot中默认的静态资源路径有:classpath:/META-INF/resources/,classp ...

  8. 13.1Springboot 之 静态资源路径配置

    Spring 静态资源路径是指系统可以直接访问的路径,且路径下的所有文件均可被用户直接读取. 在Springboot中默认的静态资源路径有:classpath:/META-INF/resources/ ...

  9. Springboot 之 静态资源路径配置

    1.静态资源路径是指系统可以直接访问的路径,且路径下的所有文件均可被用户通过浏览器直接读取. 2.在Springboot中默认的静态资源路径有:classpath:/META-INF/resource ...

随机推荐

  1. 安装tensorflow的最简单方法(Ubuntu 16.04 && CentOS)

    先说点题外话:在用anaconda安装很多次tensorflow失败之后,我放弃了,如果你遇到这样的问题:Traceback (most recent call last)-如果不是因为pip版本,就 ...

  2. Django之django-redis对数据进行简单缓存

    最近公司老大抱怨,产品某部分内容访问速度奇慢无比,由于是之前接手的别人的代码,不太清楚业务的具体逻辑,不过,经过查看,内容为无需实时更新的内容,so  直接上缓存. 什么是缓存? 对于后端来说,要做的 ...

  3. tcp/ip网络通讯安全加密方法

    tcp/ip网络通讯安全是一个广受关注的话题,现在也有一些基于tcp/ip加密技术标准如SSL,TLS等.但很多时候编写一些简单的网络通讯把这标准加密应用添加进来乎一下子把程序变得复杂了,而实现自己的 ...

  4. UI:简单的SQL语句

    一.SQL语句如果要在程序运行过程中操作数据库中的数据,那得先学会使用SQL语句1.什么是SQLSQL(structured query language):结构化查询语言SQL是一种对关系型数据库中 ...

  5. maven项目没有错,但是在项目头上有红叉的解决方法

    转自:https://blog.csdn.net/myblog_dhy/article/details/41695107 我在使用maven的过程中,要导入某个maven项目,导入的过程中会弹出一个框 ...

  6. Mysql操作符号

    1.比较运算符:  =  相等  <> 不等于 != 这个也可以  >  大于  <  小于  >= 大于等于  <= 小于等于 2.逻辑运算符:  is null ...

  7. 【411】COMP9024 Assignment1 问题汇总

    1. 构建 Makefile 文件后运行错误,undefined reference to 'sqrt' 实际上是没有链接math数学库,所以要 $gcc test.c –lm //-lm就是链接到m ...

  8. mysql同步延迟导致的问题

    前几天又遇到一个mysql读写分离的坑, 在将数据写入master后,因为存在同步延迟,所以如果立马去从库查询刚刚插入的数据可能会出现查询不到数据的情况, 解决办法:强制从主库读取数据,将插入和查询放 ...

  9. bzoj 2127 happiness【最小割+dinic】

    参考:https://www.cnblogs.com/chenyushuo/p/5144957.html 不得不说这个建图方法真是非常妙啊 假设S点选理,T点选文,a[i][j]为(i,j)选文收益, ...

  10. bzoj 4080: [Wf2014]Sensor Network【瞎搞+随机化】

    参考:https://blog.csdn.net/YihAN_Z/article/details/73380387 一点都不想写正解.jpg random_shuffle一下然后贪心的加点,和ans取 ...