javascript - 优化所需文件夹内的图像

标签 javascript django reactjs webpack redux

我正在使用 webpack 进行捆绑。我正在使用reactjs 和django。我希望 Django 和 Reactjs 使用的静态文件是分开的。我可以缩小图像,但缩小图像会保存到捆绑输出文件的文件夹中。我希望所有缩小的图像都保存在前端 -> Assets 文件夹中。我怎样才能这样做呢?

项目结构如下所示

enter image description here

app - 它是为 Django 保存静态文件的目录。 Webpack 将 React 文件捆绑到 app.js 并放置在这里,因为 Django 模板需要它在其模板中呈现为 <script src='app/bundle/js/app.js'></script>

frontend - 这是所有反应文件所在的目录。我希望图像位于此目录(assets/images/)内。将在reactjs中使用的图像。

我怎样才能做到这一点?

我的 webpack 现在是这样配置的

const path = require("path");
if(!process.env.NODE_ENV) {
    process.env.NODE_ENV = 'development';
}

module.exports = {
  entry: [
    './src/index.js'
  ],
  output: {
    path: path.join("../app/static/build/", "js"),
    filename: "app.js",
    publicPath: "../app/static/build/"
  },
  devtoo: 'source-map',
  debug: true,
  module: {
    loaders: [{
      exclude: /node_modules/,
      loader: 'babel',
      query: {
        presets: ['react', 'es2015', 'stage-1']
      }
    },
    {test: /\.(jpe?g|png|gif|svg)$/i, loader: "file-loader?name=images/[name].[ext]"},
    ]
  },
  resolve: {
    extensions: ['', '.js', '.jsx']
  },
  devServer: {
    historyApiFallback: true,
    contentBase: './'
  }
};

最佳答案

您可以使用 outputPathpublicPath 查询名称参数指定自定义输出和公共(public)路径:

loader: "file-loader?name=[name].[ext]&publicPath=assets/foo/&outputPath=app/images/"

但这个功能不是published to NPM然而。因此,不幸的是,您需要等待它被发布或克隆并使用来自 github repo 的此加载器。

关于javascript - 优化所需文件夹内的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40798790/

相关文章:

javascript - select 的默认选项不适用于 bool 值

javascript - 如果源 json 更新(添加或删除项目),则动态更新 D3 Sunburst

javascript - AngularJS 不重复数组

python - Windows 上的 mod_wsgi WSGIPythonPath 多路径

python - OSError : dlopen(libSystem. dylib,6):找不到图像

javascript - 升级到 NextJS 9.0 后如何修复 React Hooks?

javascript - 访问键修饰符似乎不起作用

python - Django - 在 ubuntu 上找不到静态文件

javascript - JS 草案 - 提及 - 插件产生此 : Warning: React does not recognize the isFocused prop on a DOM element

javascript - 占位符图像无法通过卡片正确加载 [ReactJs]