配置 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!
};
我想将静态 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!
};