【发布时间】:2014-02-22 10:30:28
【问题描述】:
假设我有一个引用另一个资产的 CSS,比如图像。 例如 abc.css 包含。 背景:url(/a/rfp/images/logo.png) 无重复;
现在我想在运行时更改 url 以指向其他域说:
背景:url(http://cdn1.domain.com/a/rfp/images/logo.png) 不重复; 这个 cdn1.domain.com 将来自一个变量。这也可以在运行时更改 说 背景:url(http://cdn2.domain2.com/a/rfp/images/logo.png) 不重复; 所以有意义的是使用变量绑定这个域。
我可以使用构建时间生成 css。 任何模板化解决方案?或者别的什么。 要记住的一点是:域名可以在运行时更改。因此,对于每个 HTTP 请求,都可以更改变量,从而更改域名。
【问题讨论】:
-
为什么不把 CSS 也放在那里 - 在 HTML 中更改 CSS 的路径(很可能是用 ASPX/CSHTML 动态生成的)比动态创建 CSS 更容易......无论如何你在看什么为 CSS?只是基本的
String.Replace和通过 `return Content(changeString, "text/css") 为 MVC 提供的服务就可以了... -
听说过
.less?? -
取决于你在做什么..这可能会有所帮助..hanselman.com/blog/… - 在 .net 中使用 scriptmananger 切换本地或 cdn。
-
大家都给出了很好的答案。但问题是另一回事。让我再解释一下。 css 文件名是:abc.css,其中包含对图像cdn1.domain.com/a/rfp/images/logo.png 的引用,其中cdn1.domain.com 的值必须来自变量。所以我不能把整个css保存到任何cdn,因为浏览器直接拉取它。并且它将仅具有硬编码的 cdn1.domain.com 域。我无法为每个 http 请求更改它。现在,如果我必须从服务器提供 css,我认为 .less 是一种方式。