7

问题

我有一个大型网站,所以我的 CSS 文件夹结构可能相当深。任何 CSS 文件都可以通过相对 URL设置元素的背景图像。在发布到我的生产服务器之前,我需要缩小所有 CSS 文件。这个缩小过程可能会破坏一些相对 URL,因为它有效地扁平化了文件夹结构。作为开发人员,您如何处理开发代码和生产代码之间的这种差异?

例子

这是我的文件夹结构:

image/
    article/
        brushStroke.jpg
style/
    module/
        button.css
    page/
        article/
            introToPainting.css
    minified/
        style20130522.css

在开发过程中,我可能在introToPainting.css中有这个 CSS 规则:

#step1 {
    background-image: url(../../../image/article/brushStroke.jpg);
}

假设在一个特定的简单页面上,我只需要button.cssintroToPainting.css。对于生产版本,这两个 CSS 文件将被压缩为 style20130522.css。现在缩小的文件位于与 introToPainting.css 不同的文件夹深度中,现在到 brushStroke.jpg路径是错误的。

http://scs.veetle.com/soget/session-thumbnails/5363e222d2e10/0eaf8f26f193375f97b7deeabae97016/5363e222d2e10_0eaf8f26f193375f97b7deeabae97016_20140509184555_536d84d367530_74_896x672.jpg

http://scs.veetle.com/soget/session-thumbnails/534711b951df7/60d40fd7ca34cf794237c5ec8cb4ff6d/534711b951df7_60d40fd7ca34cf794237c5ec8cb4ff6d_20140521117278_587ceebcd6

4

1 回答 1

0

我通常会迎合这个服务器端。

例如(使用 ASP.NET C#)通常会将 a 附加baseUrl到图像并在web.config.

然后,我将使用调试或发布版本web.config来适当地转换 baseUrl。

因此,我的 HTML 文件要么有部分,要么有整个 URL 构造服务器端(或至少有baseUrl附加的服务器端),或者baseUrl可能通过 Session 或 JavaScript 投影到客户端代码。

编辑:澄清一下,我并不是说将http://mysite.com之类的东西设置为 baseUrl,我会提倡像../../../image/我的开发 baseUrl 之类的东西,并将其转换为/image/生产时或类似的东西

于 2013-05-22T19:17:16.780 回答