配置 nuxt.js 应用程序以在网络服务器上的子目录中工作

Configure nuxt.js application to work in a subdirectory on a webserver

我想将静态 nuxt.js 应用程序(使用 nuxt generate 构建)部署到网络服务器的子目录。 nuxt默认将生成的文件放在dist目录下:

如果我在 dist 文件夹的 父目录 上启动网络服务器并使用以下命令打开页面:

http://localhost:34360/dist/

站点无法从域根目录加载脚本文件:

我尝试在 nuxt 配置中设置 publicPath 属性:

build: {
  publicPath: '/dist/'
}

应用程序编译为:

现在,nuxt 将脚本文件下移了一层 (/dist/dist) 并再次在根目录 (/dist) 上搜索,因此仍然找不到文件

如何配置站点,以便加载脚本和资产并且它是自包含的,无论我把它放在服务器上的哪个目录?

问题已解决 on GitHub 但建议的提示(使用 publicPath)无效,如上所示。

旁注:我不想指定 publicPath 绝对值(即 http://localhost:8080/dist),这可行但会产生新问题。

你需要router/base

router: {
  base: '/dist/'
}

为了完成@Aldarund 的回答,我使用:

export default {
[…] // some code
  router: {
    base:
      process.env.NODE_ENV === "development" ? process.env.BASE_URL : "/<subfolder>/"
  } // where <subfolder> is the subfolder!
};