【问题标题】:CSS and lack of constants/variables issue?CSS 和缺少常量/变量的问题?
【发布时间】:2010-09-16 03:47:57
【问题描述】:

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

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

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

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

让我强调(基于另一个响应)图像资源不存在于同一台服务器上,并且该 URL 将发生变化。所以相对路径在这种情况下不起作用。

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

任何帮助!

【问题讨论】:

  • 实际上从未遇到过这样的情况,即必须跨域移植相同的 CSS。接近的事情是更改域名。 “查找>>全部替换”对我有用
  • 我试图避免在将文件部署到“生产之路”中的第一个环境后需要有人修改文件。
  • 有人可以举一些例子吗?或者它解释它的链接?

标签: asp.net .net css layout


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

        我的想法:

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

        背景图片:网址 (localHandler.ashx(aspx)/resourceName.foo);

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

        【讨论】:

          【解决方案5】:

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

          【讨论】:

            【解决方案6】:

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

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

            【讨论】:

              【解决方案7】:

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

              【讨论】:

                【解决方案8】:

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

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

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2020-06-08
                  • 1970-01-01
                  • 2020-08-01
                  • 2011-04-28
                  相关资源
                  最近更新 更多