如何修复我的 Vue (Vite) 应用程序构建中的资产文件路径?
How to fix the asset file path in my Vue (Vite) application build?
我最近在 Vue 中完成了一个小项目,但是当我将它上传到我的服务器时,我只看到一个空白屏幕。通过研究,我发现这可能是与资产路径有关的问题,因为我将其放在子目录 (https://digitalspaces.dev/portfolio/wil/). After some time trying to fix it by editing the vite.config.js file, I gave up and decided to host it in a subdomain (https://wil.digitalspaces.dev/) 中,而不是现在的位置。
问题是,index.html 现在认为资产文件在 https://digitalspaces.dev/portfolio/wil/assets/, which is true I suppose, but they don't seem to be working from there (nor should they be). Frustratingly, when the build is in https://digitalspaces.dev/assets/, the assets directory is https://digitalspaces.dev/assets/,所以无论我在哪里它都坏了。
我的项目基于 Vue.js quick start guide using vite。
My complete repo is on GitHub,这是 vite.config.js 文件:
import { fileURLToPath, URL } from 'url'
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import vueJsx from '@vitejs/plugin-vue-jsx'
// https://vitejs.dev/config/
export default defineConfig({
plugins: [vue(), vueJsx()],
resolve: {
alias: {
'@': fileURLToPath(new URL('./src', import.meta.url))
}
}
})
感谢任何能够提供帮助的人。
您站点上的子目录是 /portfolio/wii/
,因此您应该配置 base URL 以匹配:
// vite.config.js
import { defineConfig } from 'vite'
export default defineConfig({
⋮
base: '/portfolio/wii/'
})
我最近在 Vue 中完成了一个小项目,但是当我将它上传到我的服务器时,我只看到一个空白屏幕。通过研究,我发现这可能是与资产路径有关的问题,因为我将其放在子目录 (https://digitalspaces.dev/portfolio/wil/). After some time trying to fix it by editing the vite.config.js file, I gave up and decided to host it in a subdomain (https://wil.digitalspaces.dev/) 中,而不是现在的位置。
问题是,index.html 现在认为资产文件在 https://digitalspaces.dev/portfolio/wil/assets/, which is true I suppose, but they don't seem to be working from there (nor should they be). Frustratingly, when the build is in https://digitalspaces.dev/assets/, the assets directory is https://digitalspaces.dev/assets/,所以无论我在哪里它都坏了。
我的项目基于 Vue.js quick start guide using vite。
My complete repo is on GitHub,这是 vite.config.js 文件:
import { fileURLToPath, URL } from 'url'
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import vueJsx from '@vitejs/plugin-vue-jsx'
// https://vitejs.dev/config/
export default defineConfig({
plugins: [vue(), vueJsx()],
resolve: {
alias: {
'@': fileURLToPath(new URL('./src', import.meta.url))
}
}
})
感谢任何能够提供帮助的人。
您站点上的子目录是 /portfolio/wii/
,因此您应该配置 base URL 以匹配:
// vite.config.js
import { defineConfig } from 'vite'
export default defineConfig({
⋮
base: '/portfolio/wii/'
})