react里面引入图片

引入图片确实走了很多的坑,开始的认知里,所有静态页面都需要放在public里面能执行,代码是这样的

css

.back{
    background-image: url('/images/homeBackImg.png');
}

图标路径

my-app
├── README.md
├── node_modules
├── package.json
├── .gitignore
├── public
│   └── images
│         └── homeBackImg.png
│   └── favicon.ico
│   └── index.html
│   └── manifest.json
└── src
    └── App.css
    └── App.js
    └── App.test.js
    └── index.css
    └── index.js
    └── logo.svg
    └── registerServiceWorker.js    

 

自己本地开发也可以,服务里面也可以用,爽歪歪

 

但是

 

发布到自己服务器的时候,img找不到了,404,打开浏览器访问地址是这样的

http://xxx.com/images/homeBack.png

但是打包好的image是在build里面,这样就可以访问

http://xxx.com/build/images/homeBack.png

但是要怎么才能在build的时候,自动让业务里面的路径变成url('./iamges.homeBack.png')呢,而且package.json里面已经设置了

"homepage": ".",但只会改变首页的路径,业务里面并不会去改,所以访问不到
 
 
后面可以通过这个方式去,把image放在src里面,业务里面用相对路径,在build的时候,会自动编译成绝对路径访问
css
.back{
    background-image: url('../../images/homeBackImg.png');
}

图片路径

my-app
├── README.md
├── node_modules/
├── package.json
├── .gitignore
├── public/
│   └── favicon.ico
│   └── index.html
│   └── manifest.json
└── src/
    └── images/
          └── homeBackImg.png
    └── common/
    └── component/
    └── index.css
    └── index.js
    └── logo.svg
    └── registerServiceWorker.js   

 

posted @ 2018-05-11 15:26  wzndkj  阅读(3163)  评论(0编辑  收藏  举报