html与css中图片引用路径问题

html-css014

html与css中图片引用路径问题,第1张

css 里面引用路径看上去是对的:background: url(../image/nav_on.gif)

直接在 css 文件里面写:body{background: url(../image/nav_on.gif)}

写好保存 css 后刷新网页,如果 index.html 和文件夹里面那个 php 页面看背景是不是会出现在整个网页上,没有的话说明你代码或引用css文件的方法有错误。

如果整个页面都出现了背景图的话,最大可能就是你的a没足够的宽度高度,背景实际上是引用正确了的,因为宽高不够,没显示出来,请把你的 #choice 设为块级元素并给足够的宽高值,即:

#choice{

display: block

width: xxx

height: xxx

}

a链接默认是行内元素,行内元素大小是由它里面包含的:文字、图片、多媒体及其他html元素的大小决定的。

行内元素里面包含的大小有多大,就只会把行内元素撑开成多大,比如:<a>123</a>

上面这个 a 链接里面只有 123 三个字符(假设字号是12px,行高是默认),那 a 的实际大小就只是比三个字占的面积略大一点,大概高15px、宽40px左右,你css里面设置宽度300px,高度300px,这个 a 是不会变大的,当你 display: block把 a 这个东西改成块级元素了,就会变成你设置的 300px 宽高。

还有个,经常有才学的人弄个浅色背景图,网页或a:hover后又是浅色背景色,那种不是没出来,而是视觉上看不出来。

修改 webpack 打包css的引用路径方法:

{

test: /\.css/,

loader: ExtractTextPlugin.extract('style-loader','css-loader!postcss-loader',{

publicPath:'../'

})

}

使用相对路径

更改config/index.js配置文件build.assetsPublicPath为 './'

在App.vue的 <style>中加一个background: url('./asssets/images/xxx.png')之类相对路径引用的样式

此时进行打包命令

你会发现提取出来的 css 中 url() 中图片的路径是 static/img/xxx.png 这样的,用浏览器打开index.html将会有 xxxxxxx/static/css/static/img/xxx.png 这个图片 404 的报错

主要是需要单独为 css 配置 publicPath ,更改 build/utils.js 文件中 ExtractTextPlugin 插件的 options 配置: