我尝试使用Docker在本地部署一个静态Nuxt应用程序到一个子文件夹(假设为private/
),并让Nginx将特定URL段(localhost:81/private
)的流量路由到该应用程序。
已经有另一个Nuxt应用程序正在为localhost:81/
提供服务,并且运行良好。
问题
当浏览嵌套的应用程序时,会显示“无法找到此页面”页面:
嵌套的Nuxt应用
- 使用
"nuxt": "^2.16.0"
和nuxi generate
脚本生成 - 该应用程序目前只有根索引页,即
/
(除了index.vue
没有其他文件存在于pages/
文件夹) nuxt.config.js
文件包括app.baseURL = '/private'
- 该应用程序生成的文件都下载没有错误:
- 检查返回的页面源,我可以看到所有的脚本URL都以
/private/
为前缀,例如href="/private/_nuxt/19290fb.js"
Nginx配置
server {
listen 80;
listen [::]:80;
server_name localhost;
index index.html index.htm;
location /private {
alias /usr/share/nginx/html/private;
try_files $uri $uri/ /index.html;
}
location / {
root /usr/share/nginx/html/public;
try_files $uri $uri/ /index.html;
}
# other nginx default stuff, never changed these
}
我期待什么?
浏览到localhost:81/private
应该提供“嵌套”应用程序索引页面
更新#1
注意到最后一个脚本是由localhost:81/
提供的,而不是由/private
提供的,并且不是由index.html
启动的,而是由另一个脚本启动的。
检查启动器脚本,它似乎错误地创建了文件的路径:
1条答案
按热度按时间yqlxgs2m1#
用Nuxt 3(而不是Nuxt 2和Bridge)开始了一个新的测试项目,它工作得很好。
不明白为什么,但也许nuxt 2-bridge组合与子文件夹部署不匹配,不太确定。