I am using webpack and simply trying to apply a background-image specified in a url property to an html element.
I've looked at several threads (this one for instance) but did not find something that works for me.
Here's my setup :
// index.js
import React from 'react'
import styles from './styles.css'
const MyComponent = () => {
  return (
    <div className={styles.container}></div>
  )
}
export default MyComponent
// styles.css
.container {
  background-image: url('../../../static/public/images/my-background.jpg');
}
// webpack.config.js
const path = require('path');
const HtmlWebpackPlugin = require("html-webpack-plugin");
const CopyWebpackPlugin = require('copy-webpack-plugin');
module.exports = {
  entry: path.join(__dirname, "src", "index.js"),
  output: {
    path: path.join(__dirname, "dist"),
    filename: "index.bundle.js"
  },
  mode: process.env.NODE_ENV || 'development',
  resolve: { 
    modules: [path.resolve(__dirname, "src"), "node_modules"],
  },
  devServer: {
    static: path.join(__dirname, 'src')
  },
  plugins: [
    new HtmlWebpackPlugin({
        template: path.join(__dirname, "src", "index.html"),
    }),
    new CopyWebpackPlugin({
      patterns: [
        {
          from: 'static',
          to: 'static'
        }
      ]
    })
  ],
  module: {
    rules: [
        { 
            test: /\.(js|jsx)$/, 
            exclude: /node_modules/, 
            use: ["babel-loader"] 
        },
        {
            test: /\.(css)$/,
            use: ["style-loader", "css-loader"],
        },
        {
          test: /\.(jpg|png|svg|gif)$/,
          use: ['url-loader', 'file-loader'],
        },
    ],
},
}
When reaching localhost I do see the path being resolved :

However, when I try to reach that url, all I see is a little white square ...
This is definitely not the image. I do find the image present in my build in ./dist/static/public/images/my-background.jpg
Note that the image has a large size : 3842 × 2162
I think this has to do with webpack loader configuration, but did not quite find how to adjust it to get it to work here. Any help would be very appreciated !

 
     
     
     
    