【问题标题】:Deploy VueJS App in a sub-directory or sub-path在子目录或子路径中部署 VueJS App
【发布时间】:2020-09-21 18:41:15
【问题描述】:

我在部署使用 Webpack CLi 构建的 Vue JS 应用时遇到问题。

如果上传到根目录一切正常,但在子文件夹中,所有链接都会中断。

我想将 VueJS 应用程序部署到这个 url: https://event.domain.net/webinar

我在 vue.config.js 中添加了 publicPath :

var path = require(‘path’)
module.exports = {
   publicPath: ‘./’
}

但只有 css 和 js 文件夹指向路径 /webinar。

对于资产、字体等仍指向子域https://event.domain.net

CSS and JS point to path /webinar

Asset, fonts still point to subdomain https://event.domain.net/

Console

【问题讨论】:

    标签: linux vue.js nginx vuejs2 vue-router


    【解决方案1】:

    Sagar Rabadiya 为您指出了正确的链接:

    1. 在项目根目录(package.json 所在的位置)中创建一个名为 vue.config.js 的文件。
    2. 在里面提示如下代码sn -p:
    module.exports = {
      publicPath: process.env.NODE_ENV === 'production'? '/your-sub-directory/' : '/'
    }
    

    并保存文件。

    1. 打开终端并导航到您的项目,然后运行 ​​npm run build 以从中生成生产版本。
    2. 生成生产版本后,复制其中的内容并将其粘贴到您在根文件夹中创建的子目录中。例如,如果您使用 Apache,则默认根目录是 htdocs 文件夹。我还在服务器上创建了一个虚拟主机,也许你也需要这样做。
    3. 打开浏览器并输入您的子目录所在的地址。例如:http://your-server-url:your-port/your-sub-directory/ 您现在应该可以看到您的应用了。

    【讨论】:

      【解决方案2】:

      使用 publicPath 的值作为 /webinar 应该可以工作。

      更多详情在这里https://cli.vuejs.org/config/#publicpath

      您甚至可以根据环境配置 publicPath。

      【讨论】:

      • @Argan 这个答案解决了你的问题吗?
      猜你喜欢
      • 2017-10-08
      • 1970-01-01
      • 2020-02-26
      • 1970-01-01
      • 2017-11-30
      • 2017-01-18
      • 1970-01-01
      • 2010-09-06
      相关资源
      最近更新 更多