将 nuxt.js 应用程序配置为在 Web 服务器上的子目录中工作
Posted
技术标签:
【中文标题】将 nuxt.js 应用程序配置为在 Web 服务器上的子目录中工作【英文标题】:Configure nuxt.js application to work in a subdirectory on a webserver 【发布时间】:2018-11-29 08:03:54 【问题描述】:我想将静态 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
),这会起作用但会产生新问题。
【问题讨论】:
【参考方案1】:你需要router/base
router:
base: '/dist/'
【讨论】:
这就是我要找的!谢谢!有没有一种方法可以通用地配置它,即在应用程序可以移动到 /xyz/ 而无需更改配置和重建? 不重建我不这么认为。也许只能通过一些第 3 方模块。至于动态你可以在 nuxt.config build.extend 谢谢你,我现在会用你的解决方案! 为了将来的需要,这里是关于路由器基础配置的文档nuxtjs.org/docs/2.x/configuration-glossary/configuration-router【参考方案2】:为了完成@Aldarund 的回答,我使用:
export default
[…] // some code
router:
base:
process.env.NODE_ENV === "development" ? process.env.BASE_URL : "/<subfolder>/"
// where <subfolder> is the subfolder!
;
【讨论】:
这就是我要找的。泰。以上是关于将 nuxt.js 应用程序配置为在 Web 服务器上的子目录中工作的主要内容,如果未能解决你的问题,请参考以下文章