使用 Nginx 将 Nuxt 应用程序编译为静态文件以部署在子文件夹中

问题描述 投票:0回答:0

我正在尝试使用 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
启动,而是由另一个脚本启动。
检查启动器脚本似乎错误地创建了文件路径:

nginx nuxt.js single-page-application url-routing nginx-config
© www.soinside.com 2019 - 2024. All rights reserved.