webpack - 在 Vue CLI 3 配置中使用相对 URL 时本地字体路径不正确

标签 webpack vue.js vue-cli

我需要在 Vue 应用程序上设置相对 URL,因为该应用程序可以部署到各种设置中。

我目前使用的是Vue Cli 3.0.0-beta.6,修改了vue.config.js文件,生产环境使用相对路径。

// vue.config.js    
module.exports = {
  lintOnSave: false,
  configureWebpack: config => {
    if (process.env.NODE_ENV === 'production') {
      return {
        output: {
          publicPath: ''
        }
      }
    } else {
      return {
        output: {
          publicPath: '/'
        }
      }
    }
  }
}

但是,当我使用 vue-cli-service build 进行生产构建时,字体路径会发生变化(我猜是通过 webpack),而不是:

http://127.0.0.1:8080/fonts/my-font.ttf

它通过 CSS 文件夹路由

http://127.0.0.1:8080/css/fonts/my-font.ttf

我目前的想法是我需要在构建产品时覆盖处理字体的 webpack 配置,但我是:

  • 不确定这是否是正确的方法
  • 甚至不知道该怎么做
  • 受够了 webpack

任何帮助都会很棒

最佳答案

你应该能够在 vue.config.js 中做到这一点:

chainWebpack: config => {
  config.module.loader('fonts').tap(options => {
    options.name = `../fonts/[name].[hash:8].[ext]`
  }
}

但一般来说,相对路径至少在 SPA 中是有问题的。例如,如果你打算使用具有历史记录模式的 vue-router,你的应用程序将在页面刷新时中断。

所以我最好的建议是为每个部署重新构建一个绝对路径。

关于webpack - 在 Vue CLI 3 配置中使用相对 URL 时本地字体路径不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49640671/

相关文章:

webpack - 将外部js添加到Vue CLI时出现Mime类型错误

javascript - Vue Prop 默认值无法正常工作

webpack - 模块构建失败 : SyntaxError: Unexpected token with babel-plugin-transform-vue-jsx

javascript - 将 NODE_ENV 传递到 Windows 10 的 npm 脚本中

javascript - Webpack 中的输出文件名未配置错误

javascript - 在不同的文件/函数中捕获 axios 请求

vue.js - 从另一个模块提交突变

webpack - 如何在Vue应用程序的头部有条件地添加代码

vue.js - 从 Visual Studio Code 调试 vue-cli 3 生成的应用程序

javascript - 如何在angular2 webpack typescript 中包含第三方javascript库