我使用Nuxt 2.15.8
生成静态页面(如果迁移到next 3可以解决问题,我也可以选择)。
它在服务器的根文件夹中部署时效果很好,但我需要它在子目录中提供服务,如:
https://my.domain.com/folder/subfolder
问题是编译的HTML包含nuxt
相关的资产,如:
/_nuxt/123456789.js
翻译成:
https://my.domain.com/_nuxt/123456789.js显然失败了,因为文件在子文件夹中,而不是在根目录中。
我尝试使用publicPath
配置和绝对路径,但它不是我的选择,因为我有几个不同的url环境。
我需要生成具有相对路径的静态HTML文件,以确保我的网站在所有环境中按预期工作,与服务器URL无关。
我能够使用Vite + Vue 3
实现它,但迁移到新的实现不是一个选项,我需要使用当前的Nuxt
实现来实现它。
我尝试使用nuxt-vite
https://vite.nuxtjs.org/,但无法实现相对路径,我仍然得到/_nuxt/123456789.js
而不是
./_nuxt/123456789.js
../_nuxt/123456789.js
../../_nuxt/123456789.js
等
这似乎是不支持在普通next 2,但如果你使用nuxt-vite
你可以设置vite。
nuxt.config
中的''
或'./'
的base设置为相对路径。试一下:
export default defineNuxtConfig({
app: {
baseURL: '/mydir',
buildAssetsDir: '/mydir/_nuxt/',
},
或者直接手动编辑index.html…