【发布时间】:2021-01-15 20:28:12
【问题描述】:
我正在尝试根据所选选项(使用下面显示的模板)显示动态图像,但是当我部署应用程序时,我认为 Webpack 会更改图像文件名。如何防止这种重命名?
<select v-model="geturl">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<div v-if="geturl">
<img
:src="require(`@/assets/images/${geturl}.jpg`)"
style="height:250px; width:250px; object-fit:cover;">
</div>
如果我在开发模式下更改选项,我可以看到图像;但是当我部署应用程序时,图像文件名会转换为1.zxc123.jpg。
【问题讨论】:
-
Webpack 会更改它处理的图像资产的名称,但这就是您使用
require的原因,以获取更改后的名称。捆绑包还包含该名称,因此请务必在生产环境中使用捆绑的文件 -
使用图片作为静态文件,而不是
assets将被 webpack 处理 -
@AlexHunter 但这已经是正确的,为什么要改变它?
-
@AlexHunter 我的意思是你不应该让 webpack 处理你的图像,因为文件将被处理成适合传输的文件(取决于它的大小)。对于服务器端渲染vue(也许你不是,但没关系),资产文件夹中的文件将由节点处理,但静态文件夹中的文件不会被处理。将图像视为普通文件,例如
robot.txt或favicon.ico.more about it -
因为它不起作用,我正在构建一个库(npm run build-lib),当我安装它时,控制台说找不到图像@Dan
标签: javascript vue.js webpack vuejs2