Я редко нахожу проблему, на которую я еще не могу найти ответ, но на этот раз я действительно в тупик - и я сожалею заранее, если мой вопрос окажется глупым или тривиальный.Приложение ReactJS не может загрузить фоновое изображение
Я создаю простое приложение React, и я должен предоставить компоненту Home фоновое изображение, которое является файлом .svg
. Однако изображение не загружается - dev tools В разделе Network говорится, что он не может загрузить изображение, но он появляется там с хэшированным именем файла, поэтому я предполагаю, что файловый загрузчик работает. Я также использую реакционные css-модули. Я пробовал пару подходов:
Реагировать Компонент v.1
import React from 'react'
import CSSModules from 'react-css-modules'
import styles from '../styles/home.css'
class Home extends React.Component {
render() {
return (
<div className='homeContainer' styleName='homeBg'>
<div className='col-sm-12 text-center'>
<div className="jumbotron col-sm-6 col-sm-offset-3" styleName='transparentBg'>
<h1>Enter Your Location</h1>
<form>
<div className="form-group">
<input type="text" className="form-control" placeholder='Location...' />
</div>
<div className="form-group">
<button className='btn btn-lg btn-submit btn-success' type="submit">Continue</button>
</div>
</form>
</div>
</div>
</div>
);
}
}
export default CSSModules(Home, styles)
Вот CSS модуль:
.homeBg {
background-image: url(../images/pattern.svg)
}
...
И мой Webpack конфигурации:
loaders: [
{test: /\.js$/, exclude: '/node_modules/', loader: 'babel-loader'},
{test: /\.css$/,
loaders: [
'style?sourceMap',
'css?modules&importLoaders=1&localIdentName=[path]___[name]__[local]___[hash:base64:5]'
]
},
{test: /\.svg$/, loader: 'file-loader'}
]
Вот второй подход, который я пробовал в компоненте:
render() {
const bgImg = require('../images/pattern.svg')
const background = {
backgroundImage: 'url(' + bgImg + ')'
}
return (
<div className='homeContainer' style={background}>
...
Но у меня есть - изображение не загружается. Он загружается обычным тегом <img>
, но не как фон. Что еще я мог попробовать? Спасибо заранее за любые предложения!