如果样式表具有对另一台服务器上的图像资源的完全限定引用,是否有一种很好的方法可以通过需要不同基本URL的不同环境来处理促销?
background-image:url (evironmentSpecificURL / resourceName.foo);
environmentSpecificURL因环境而异,我不希望在开发,qa,登台,制作等过程中修改此文件。
我有想法,但我对别人如何处理这个问题很感兴趣 - 我会发布我的一个想法。
让我强调(基于另一个响应)图像资源不存在于同一服务器上,而且是将要更改的URL。所以相对路径在那种情况下不起作用。
另外,我试图避免修改可能存在多个URL实例的css,并将该URL集中到一个配置点。
任何帮助!
答案 0 :(得分:3)
您引用的资源实际上应该与您的css文件处于相对级别,这样它只是一个“.. \ resourceName.foo”远离工作。
对于cource,您还可以查看自动生成站点的环境特定区域的构建工具,因此所有属性(如css文件,.properties文件等)都是通过构建工具链接ANT动态生成的。的MSBuild
答案 1 :(得分:2)
在CSS样式表中,基本URL是样式表的基本URL,而不是包含它的文档。使样式表中的URL相对并正确定位样式表。
答案 2 :(得分:1)
您可以创建一个可配置的CSS预处理器,用URL替换定义并缓存结果。
答案 3 :(得分:0)
我的想法:
在Web应用程序上本地开发一个处理程序/ etc,以提取映像并处理配置文件中基本URL的更改:
background-image:url (localHandler.ashx(CSS)/resourceName.foo);
localHandler调用目标资源,然后根据内容类型返回资源。
答案 4 :(得分:0)
要么跨环境保持一致(我总是喜欢这种方法)或动态生成CSS。
答案 5 :(得分:0)
根据您的构建环境,可能有一种机制来处理资源文件并用所需的值替换变量。
我将Maven用于我的Java开发,它内置了这个功能。
答案 6 :(得分:0)
您可以使用<base />标记并设置要使用的基本URL来解决所有其他相关请求,从而实现您的目标。
答案 7 :(得分:0)
你可以用我们的.Less CSS preprocessor做一些事情来在运行时换掉变量。
那说,你是如何部署的?如果您使用CI工具并自动编写部署脚本,那么您可以包括一个后期构建步骤来查找替换此基本路径。