WebPack + SASS : 如何生成相对图像路径?

WebPack + SASS : How to generate relative image path?

我正在尝试在充当代理 (proxyPass) 的 Apache 虚拟主机后面设置一个 Web 应用程序,以便添加上下文路径。当然只有 vhost 必须知道这个 contextPath。

一切正常,除了未加载的背景图像。原因很简单:

SASS 图片 URL 是绝对的,不包含上下文路径。

如果最终 CSS 中生成的 URL 是相对的,则应该正确加载图像。

如何使用SASS/Webpack生成相对路径?


备注:

无论我在 SASS 文件中使用什么,绝对或相对路径,最终输出总是绝对的。我目前使用:

我不使用任何文件加载器(我也尝试过但什么也没改变),只是复制 dist 目录中的所有图像。

解决方案是在 css-loader 中将 url 选项设置为 false(参见 css-loader documentation)。此外,一旦我们在 SASS 源中使用相对路径,我们也需要一个文件加载器,如果我们使用已经负责将这些文件复制到 dist 目录中的 CopyWebpackPlugin,则将 emitFile 设置为 false。

      {
        test: /\.(css|sass|scss)$/,
        use: ExtractTextPlugin.extract({
          fallback: 'style-loader',
          use: [{
            loader: 'css-loader',
            options: { url: false }
          }, {
            loader: 'sass-loader'
          }]
        })
      }, {
        test: /\.(png|svg)$/,
        exclude: /node_modules/,
        use: [{
          loader: 'file-loader?name=img/[name].[ext]',
          options: {
            emitFile: false
          }
        }]
      }