服务器端 css 在 FireFox 和 Chrome 中不起作用

Posted

技术标签:

【中文标题】服务器端 css 在 FireFox 和 Chrome 中不起作用【英文标题】:Serverside css not working in FireFox and Chrome 【发布时间】:2011-06-27 06:22:33 【问题描述】:

我正在使用 asp.net4,并且在 head 标签中显示了这样的 CSS。

<link href="/ReadCss.aspx?css=<%
=Server.UrlEncode("~/Interface.css") %>" rel="stylesheet" type="text/css" />

这样我可以将一些变量处理到表单中,然后再将其提供给浏览器。

这在 IE8 中有效,在 Firefox 3.6 或 Chrome 9 中无效。

在 FireFox 和 Chrome 中,就好像样式表没有应用于页面一样。缺少所有样式和格式。

检查 IIS 日志,我看到页面已成功发送到这些浏览器。我什至可以直接导航到 Read.aspx 地址并查看 css。

我怎样才能让这些在那些浏览器中工作?

谢谢

附加 这就是渲染的样子。

<link href="/ReadCss.aspx?css=%7e%2fcss%2fInterface.css" rel="stylesheet" type="text/css" />

【问题讨论】:

在浏览器中查看源代码 css 链接是什么样的?可能想给出相对于网络根目录的 url。 @Dagon:我编辑了我的帖子以显示标签的渲染版本。浏览到呈现的地址,显示 CSS。 【参考方案1】:

确保您的页面将内容类型设置为text/css。如果您的页面用作 text/plain 之类的其他内容,Firefox 可能会忽略它。尝试在你的代码隐藏中设置Request.ContentType = "text/css"

【讨论】:

成功!我将代码修改为 Response.ContentType Response.ContentType = "text/css"; Response.Write(css); 请注意,请确保验证通过查询字符串传入的内容,以便用户无法提供他们不应该提供的文件,例如您的 web.config。 是的,谢谢您的提醒。我添加了一个约束。

以上是关于服务器端 css 在 FireFox 和 Chrome 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

移动Web开发基础

[完美]原生JS获取浏览器版本判断--支持Edge,IE,Chrome,Firefox,Opera,Safari,以及各种使用Chrome和IE混合内核的浏览器

Less 的使用方法

PC端兼容性

MP4 视频在 <video> 标签中无法在 Firefox 上播放,如果直接打开则播放

在 Firefox 中运行 node.js 和 socket.io 时出现 CORS 错误