用于服务css和js的无cookie域 - 组织代码的方式?

时间:2011-11-18 19:51:16

标签: javascript html css static cookieless

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

第二个方便我可以编写我的html页面以相对加载css和javascript文件,例如“static / reset.css”,与实际域无关。

在我改变

时,是否有一个好的做法是避免改变我的所有源文件

static.example.com到static.otherexample.com

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

3 个答案:

答案 0 :(得分: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,但我确信有很多适用于各种环境的工具。

答案 1 :(得分:0)

如何生成html?

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

答案 2 :(得分:0)

您可以随时在服务器上执行操作,即HTML中的所有网址都可以相对于/static,但是一旦您的服务器收到请求,它就可以“更改”路由并从{{1获取文件而不是static.current-domain.com

相关问题