0

为什么下面的别名在 HTML 标记中不起作用或在 JavaScript 中不起作用有什么原因吗?

在我的 webpack 配置文件中:

  resolve: {
    alias: {
      '~': path.resolve(__dirname, './src/')
    }
  },
 ...
 ...
 ...

 {
    test: /\.(png|svg|jpg|gif|ico)$/,
    use: [
      {
        loader: 'file-loader',
        options: {
          outputPath: 'images',
          esModule: false,
          name: '../assets/images/[name].[ext]'
        },
      },
    ]
 },
 {
   test: /\.(html)$/,
   use: ['html-loader']
 }

在我的 HTML 文件 (.vue) 中:

// .vue
// Does not work
<template>
  <p><img src="~/assets/images/sample.jpg"></p>
</template>

// Ok
<script>
import Image from '~/assets/images/sample.jpg'
</script>

我的 webpack 配置中是否缺少某些内容?

4

1 回答 1

1

vue-html-loader并且css-loader在这种情况下实际使用。

你可以试试这个:

<img class="logo" src="~assets/images/sample.jpg">

或者

<template>
  <div>
    <img :src="sample" />
  </div>
</template>

<script>
import image from '~/assets/images/sample.jpg';

export default {
    data() {
        sample: image;
    }
}
</script>
于 2020-09-23T02:45:00.820 回答