2

给定具有对另一台服务器上的图像资源的完全限定引用的样式表,是否有一种通过需要不同基本 URL 的不同环境处理促销的好方法?

背景图像:网址(evironmentSpecificURL/resourceName.foo);

environmentSpecificURL 会因环境而异,我不希望在开发、质量保证、暂存、生产等过程中修改此文件。

我有想法,但对其他人如何处理这个问题很感兴趣——我将发布我的一个想法。

让我强调(基于另一个响应)图像资源不存在于同一台服务器上,这就是将更改的 URL。所以相对路径在这种情况下不起作用。

此外,我试图避免需要修改可能存在多个 URL 实例的 CSS,并将该 URL 集中到一个配置点。

任何帮助!

4

8 回答 8

3

您引用的资源实际上应该与您的 css 文件处于相对级别,这样它就只是一个“..\resourceName.foo”远离工作。

当然,您还可以查看自动生成站点特定环境区域的构建工具,因此所有属性(如 css 文件、.properties 文件等)都是通过构建工具链接 ANT 或 MSBuild 动态生成的

于 2008-10-08T22:43:01.663 回答
2

在 CSS 样式表中,基本 URL 是样式表的 URL,而不是包含它的文档的 URL。使样式表中的 URL 相对并适当地定位样式表。

于 2008-10-08T22:45:53.263 回答
1

您可以制作一个可配置的 CSS 预处理器,用 url 替换定义并缓存结果。

于 2008-10-08T22:41:09.887 回答
0

您可以通过使用<base />标记并设置用于解析所有其他相关请求的基本 URL 来实现您所追求的目标。

于 2008-10-09T08:22:43.910 回答
0

我的想法:

在 Web 应用程序本地开发一个处理程序/etc 以拉入图像并处理配置文件中基本 URL 的更改:

背景图像: url (localHandler.ashx(aspx)/resourceName.foo);

localHandler 调用目标资​​源,然后根据内容类型返回资源。

于 2008-10-08T22:40:59.373 回答
0

要么跨环境保持一致(我总是喜欢这种方法),要么动态生成 CSS。

于 2008-10-08T22:43:07.450 回答
0

根据您的构建环境,可能有一种机制来处理资源文件并用所需的值替换变量。

我将 Maven 用于我的 Java 开发,它内置了这个功能。

于 2008-10-08T22:43:46.950 回答
0

您可以使用我们的.Less CSS 预处理器在运行时交换变量。

也就是说,你是如何部署的?如果您使用 CI 工具并自动编写部署脚本,那么您可以包含一个构建后步骤来查找替换此基本路径。

于 2009-11-01T17:09:03.380 回答