生成nuxt.js应用程序以在Web服务器上的子目录中工作

时间:2018-06-20 08:45:37

标签: vue.js nuxt.js

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

default output

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

http://localhost:34360/dist/

该站点(未成功)尝试从域根目录中加载脚本文件:

404 Default

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

build: {
  publicPath: '/dist/'
}

该应用程序编译为:

output with publicPath

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

error with publicpath

无论我将其放在服务器上的哪个目录中,如何生成网站,以便加载脚本和资产并将其自包含?

该问题已得到on GitHub的保护,但建议的提示(使用publicPath)无效,如上所示。

旁注:我不想指定publicPath绝对值(即http://localhost:8080/dist),它可以工作,但会带来新的问题。

2 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:2)

您需要router/base

router: {
  base: '/dist/'
}