【发布时间】:2020-07-06 16:16:18
【问题描述】:
我已经运行了npm run build,这会生成一个包含静态资产(例如图像)的 dist 文件夹。我在 vue 路由器上使用历史模式。
图像的 HTML 如下所示:
dist 文件夹如下所示:
现在部署站点后,图像已损坏:
但是,img src 是正确的:
那么这里的问题是什么?
【问题讨论】:
标签: html vue.js deployment
我已经运行了npm run build,这会生成一个包含静态资产(例如图像)的 dist 文件夹。我在 vue 路由器上使用历史模式。
图像的 HTML 如下所示:
dist 文件夹如下所示:
现在部署站点后,图像已损坏:
但是,img src 是正确的:
那么这里的问题是什么?
【问题讨论】:
标签: html vue.js deployment
我将在这里冒险并猜测问题与您的路线有关,并且相对路径不适用于路线。
如果您的应用程序显示在根目录 / 上,则相对图像路径将起作用,但是因为(并且猜测)您的路由将当前路径更改为类似 /sales 的路径,因此相对路径不再起作用。
您可以通过确保使用相对路径来解决此问题。
例如,如果您使用的是 vue-cli-3 生成的项目,请检查vue.config.js 文件并确保您没有设置publicPath,因为它默认为/。
module.exports = {
publicPath: "./", // <= this will use relative path
};
【讨论】:
/ 而不是./
尝试更改 index.js 中包含到目标文件夹的路径的路径,例如:dist。
作为一个 publicPath,我将 ./ 设置为 Daniel 提到的。
这对我有帮助,但我刚刚开始学习 VueJS,所以它可能不是最好的解决方案。
const routes = [
{
path: '/dist/',
name: 'Home',
component: Home
},
{
path: '/dist/map',
name: 'Map',
component: Map
},
{
path: '/dist/store',
name: 'Store',
component: Store
}
]
【讨论】: