【问题标题】:Configure nuxt.js application to work in a subdirectory on a webserver将 nuxt.js 应用程序配置为在 Web 服务器上的子目录中工作
【发布时间】: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),这会起作用但会产生新问题。

【问题讨论】:

    标签: vue.js nuxt.js


    【解决方案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!
    };
    

    【讨论】:

    • 这就是我要找的。泰。
    猜你喜欢
    • 2018-02-02
    • 1970-01-01
    • 1970-01-01
    • 2020-04-01
    • 2021-10-24
    • 1970-01-01
    • 2023-03-26
    • 2014-06-02
    相关资源
    最近更新 更多