我想将我的环境配置为从static.example.com而不是example.com/static提供css和javascript文件。
第二个方便我可以编写我的html页面以相对加载css和javascript文件,例如“static / reset.css”,与实际域无关。
在我改变
时,是否有一个好的做法是避免改变我的所有源文件static.example.com到static.otherexample.com
因为我必须重写所有导入css和javascript的HTML源文件?
答案 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