使用相对路径使用next . js生成静态站点



我使用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-vitehttps://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…

最新更新