首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >asset_url_for()在烧瓶饼干切割器中不返回任何一个(烧瓶-webpack)

asset_url_for()在烧瓶饼干切割器中不返回任何一个(烧瓶-webpack)
EN

Stack Overflow用户
提问于 2019-07-30 14:04:23
回答 1查看 104关注 0票数 1

我是webpack的新手。I使用flask-cookie-cutter,而后者又使用瓶-Webpack

我有问题的应用程序找不到我的形象在发展中。

图像在assets/img文件夹中,我尝试过使用{{ asset_url_for('img/img_name.png') }}和它的各种变体-它只是返回一个。

我试过常用的{{ url_for('static', filename='img/img_name.png') }}烧瓶法

但我似乎无法接近他们。

代码语言:javascript
复制
const path = require('path');
const webpack = require('webpack');

/*
 * Webpack Plugins
 */
const ManifestRevisionPlugin = require('manifest-revision-webpack-plugin');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');

// take debug mode from the environment
const debug = (process.env.NODE_ENV !== 'production');

// Development asset host (webpack dev server)
const publicHost = debug ? 'http://0.0.0.0:2992' : '';

const rootAssetPath = path.join(__dirname, 'assets');

module.exports = {
  // configuration
  context: __dirname,
  entry: {
    main_js: './assets/js/main',
    main_css: [
      path.join(__dirname, 'node_modules', 'materialize-css', 'dist', 'css', 'materialize.css'),
      path.join(__dirname, 'assets', 'css', 'style.css'),
    ],
  },
  output: {
    path: path.join(__dirname, 'dsi_website', 'static', 'build'),
    publicPath: `${publicHost}/static/build/`,
    filename: '[name].[hash].js',
    chunkFilename: '[id].[hash].js',
  },
  resolve: {
    extensions: ['.js', '.jsx', '.css'],
  },
  devtool: 'source-map',
  devServer: {
    headers: { 'Access-Control-Allow-Origin': '*' },
  },
  module: {
    rules: [
      {
        test: /\.less$/,
        use: [
          {
            loader: MiniCssExtractPlugin.loader,
            options: {
              hmr: debug,
            },
          },
          'css-loader!less-loader',
        ],
      },
      {
        test: /\.css$/,
        use: [
          {
            loader: MiniCssExtractPlugin.loader,
            options: {
              hmr: debug,
            },
          },
          'css-loader',
        ],
      },
      { 
        test: /\.html$/, 
        loader: 'raw-loader' 
      },
      { 
        test: /\.woff(2)?(\?v=[0-9]\.[0-9]\.[0-9])?$/, 
        loader: 'url-loader', 
        options: { 
          limit: 10000, 
          mimetype: 'application/font-woff' 
        } 
      },
      {
        test: /\.(ttf|eot|svg|png|jpe?g|gif|ico)(\?.*)?$/i,
        loader: `file-loader?context=${rootAssetPath}&name=[path][name].[hash].[ext]`
      },
      { 
        test: /\.js$/, 
        exclude: /node_modules/, 
        loader: 'babel-loader', 
        query: { 
          presets: ['env'], 
          cacheDirectory: true 
        } 
      },
    ],
  },
  plugins: [
    new MiniCssExtractPlugin({ filename: '[name].[hash].css', }),
    new webpack.ProvidePlugin({ $: 'jquery', jQuery: 'jquery' }),
    new ManifestRevisionPlugin(path.join(__dirname, 'dsi_website', 'webpack', 'manifest.json'), {
      rootAssetPath,
      ignorePaths: ['/js', '/css'],
    }),
  ].concat(debug ? [] : [
    // production webpack plugins go here
    new webpack.DefinePlugin({
      'process.env': {
        NODE_ENV: JSON.stringify('production'),
      }
    }),
  ]),
};
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-07 09:05:40

对于烧瓶-饼干切割机,我也遇到了同样的问题,并通过更新/升级npm并在down文件中添加extensionsRegex: /\.(jpe?g|png|gif|svg)$/iwebpack.config.js

代码语言:javascript
复制
ManifestRevisionPlugin(path.join(__dirname, '<your app>', 'webpack', 'manifest.json'), {
      rootAssetPath,
      ignorePaths: ['/js', '/css'],
      extensionsRegex: /\.(jpe?g|png|gif|svg)$/i
    }),

源解。正确调用模板显示图像:

代码语言:javascript
复制
{{ asset_url_for('img/img_name.png') }}

在此之后,我检查启动屏幕,并看到我的所有映像正确加载。

代码语言:javascript
复制
[WEBPACK]                                    _/assets/img/image_name.20aed528d50316c91ffedb5ba47b8c74.jpg  18.9 KiB            [emitted]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57273612

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档