【问题标题】:Is there a way to load images from domain without changing localhost config host in webpack?有没有办法在不更改 webpack 中的 localhost 配置主机的情况下从域加载图像?
【发布时间】:2018-06-11 10:14:09
【问题描述】:

在我当前的webpack.base.config 中,我尝试将选项公共主机添加到加载器图像中,但我仍然无法为包含我需要使用的图像的图像文件夹加载域路径。 有没有办法同时加载域图像和本地主机中的图像?

我已将加载器更改为“文件”,但仍然无法加载我需要从 CDN 加载的图像。我需要做什么才能在本地主机之外加载外部图像但仍然能够从资产加载本地图像?这是我第一次编辑 webpack 配置文件。提前感谢您的帮助!

module.exports = {
  entry: {
    app: './src/main.js'
  },
  output: {
    path: config.build.assetsRoot,
    publicPath: process.env.NODE_ENV === 'production' ? config.build.assetsPublicPath : config.dev.assetsPublicPath,
    filename: '[name].js'
  },
  resolve: {
    extensions: ['', '.js', '.vue'],
    fallback: [path.join(__dirname, '../node_modules')],
    alias: {
      'vue$': 'vue/dist/vue.common.js',
      'src': path.resolve(__dirname, '../src'),
      'assets': path.resolve(__dirname, '../src/assets'),
      'components': path.resolve(__dirname, '../src/components')
    }
  },
  resolveLoader: {
    fallback: [path.join(__dirname, '../node_modules')]
  },
  module: {
    loaders: [
      {
        test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
        //loader: 'file',
        loader: 'url',
        // options: {
        //   publicPath: 'https://asdgasdgasdgasdg.com'
        // }
        query: {
          limit: 10000,
          name: utils.assetsPath('img/[name].[hash:7].[ext]')
        }
      }
    ]
  },

【问题讨论】:

  • 要从 CDN 嵌入图片,您只需在 vue 模板中编写简单的 HTML。例如:example.org/foobar.png' />.
  • 不起作用,这就是为什么我必须通过 webpack 配置找到一个选项。如果我像上面那样做,那么我必须导入图像,它只适用于一个图像,但我不能 v-for 一堆图像

标签: webpack vue.js vuejs2 webpack-dev-server webpack-2


【解决方案1】:

您可以尝试为此使用代理设置,例如

 devServer: {
    port: METADATA.port,
    host: METADATA.host,
    historyApiFallback: true,
    watchOptions: {
        aggregateTimeout: 300,
        poll: 1000
    },
    contentBase: appConfig.dist,        
    proxy: {
       '*': 'http://localhost:8080', // REST service
    },
},

【讨论】:

  • 我试过了,在网络选项卡上说:无法获取 (mydomain.comm/static/image.jpeg),我仍然无法加载 localhost 静态 css 和 js 文件,也无法加载 mydomain.com/randomfolder/randomimage
  • 遗憾的是我只是加载失败,没有错误代码,我相信它不是 CORS 也不是 404,可能它在 webpack 中
【解决方案2】:

你只需要配置 webpack 来处理本地图片,也许你无法从 CDN 加载图片,因为你正在使用的获取图片的路径或方法是错误的?

【讨论】:

  • true,可能是因为资产路径解析到那里,所以 cdn 应该定位“资产”文件夹?,“资产”: path.resolve(__dirname, '../src/assets') 。但仍然对如何通过 webpack 处理资产感到困惑,因为我也需要它来定位 cdn 和 localhost 资产目录
  • 展示你如何在 vue 中尝试从 CDN 加载图片。
  • <img :src="item.img" alt="asg"/>data(){arr: [...Array(50)].map((item, index) => {img: 'https://domain/images/three.jpeg'
  • <router-link v-for="(item,i) in arr" :to="'/user/'+ item.uid"> <li class='users'> <img :src="item.img" alt="asg"/> 不能因为我正在遍历图像数组
  • 最好在您的问题中发布所有这些代码,以便我更好地理解它。
猜你喜欢
  • 1970-01-01
  • 2019-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-10
  • 2012-07-13
  • 1970-01-01
  • 2021-09-24
相关资源
最近更新 更多