0

我想将我的环境配置为从 static.example.com 而不是 example.com/static 提供 css 和 javascript 文件。

第二个方便我可以编写我的html页面来加载css和javascript文件,例如独立于实际域的“static/reset.css”。

是否有一种好的做法可以避免在更改时更改所有源文件

static.example.com 到 static.otherexample.com

因为我必须重写所有导入css和javascript的HTML源文件?

4

3 回答 3

1

使用某种可配置的前缀来包含 js 和 css 文件。根据您使用的技术,为此使用某种辅助方法会很有帮助。在 ASP.NET MVC 中,我使用了一些自定义方法CSS.Add("reset.css"),比如知道路径和 URL。

js 文件不应该真正关心它们是从哪里加载的。至于 css,重要的是要知道 CSS 中的相对 URL 被解释为相对于加载 CSS 的 URL,而不是相对于加载页面的 URL。因此,请确保您了解这background-image: url('/images/img1.png')也会从静态页面加载(这通常是一件好事)。

更好的方法

压缩、缩小和合并所有 CSS / js 文件是最佳实践。因此,您应该只拥有非常少量的文件(一个 js,一个 css)来保持较低的请求数量。这些文件的包含将发生在服务器上,因此 URL 无关紧要。要实现这一点,您将需要某种辅助方法(以及许多压缩逻辑,但所有这些都有库)。

对于 ASP.NET MVC,有SquishIt,但我确信有很多工具可用于各种环境。

于 2011-11-18T20:09:54.363 回答
0

html是如何生成的?

您可以使用配置值或常量,并将该值用于任何静态资产的 url 的域部分。

于 2011-11-18T19:56:08.387 回答
0

您总是可以在服务器上做一个技巧,即您在 HTML 中的所有 url 都可能是相对的/static,但是一旦您的服务器收到请求,它可以“更改”路由并从中获取文件static.current-domain.com而不是current-domain.com/static

于 2011-11-18T19:57:50.477 回答