添加背景图片后报UTF32值不可包含代理码点错误如何解决
错误原因
这个UTF-32编码校验错误的根源是CSS文件中的路径写法不符合CSS语法规范:
- 你在背景图路径中使用了Windows系统的路径分隔符反斜杠
\,但CSS语法只支持正斜杠/作为路径分隔符,且反斜杠在CSS中被定义为转义符前缀。 - 解析器读到
\672d片段时,会默认这是一个Unicode转义序列尝试解码,最终生成了超出UTF-32合法取值范围、或是落在UTF-16代理码点区间的无效字符,直接触发编码报错。 - 报错定位到
_Layout.cshtml中的@Styles.Render("~/Content/css")行,是因为这行代码负责触发Site.css的加载、解析流程,异常是在CSS解析阶段抛出的,这两行Razor代码本身没有语法错误。
修复方案
- 把背景图路径里的反斜杠替换为正斜杠,修正后的CSS代码如下:
background-image: url('Image/672d0ab79a9c2655e6d3155c7760580e.jpg'); background-size: cover; background-position: center center; background-repeat: no-repeat; margin: auto; - 如果修改后页面提示图片资源404,核对文件相对路径即可:
- 如果存放图片的
Image文件夹在网站根目录,和Content文件夹同级,就把路径改为url('/Image/672d0ab79a9c2655e6d3155c7760580e.jpg'),开头的正斜杠代表从站点根目录开始寻址,避免相对路径层级匹配错误。 - 如果图片和Site.css同放在Content文件夹下,修正斜杠后的原有写法即可正常生效。
- 如果存放图片的
内容的提问来源于stack exchange,提问作者Ikmal Shahfiz
相关产品推荐
相关产品推荐

