我刚刚进入资产管道;我正在使用SASS / SCSS,但我不明白为什么我应该使用资产助手。
例如,如果我有一些CSS / SCSS而不使用资产助手:
background-image: url('rails.png');
这样可以正常工作,因为我的.SCSS文件和图像都在资产目录中并可以访问。
这样做有什么意义?:
background-image: asset-url("rails.png", image);
我知道它会在网址中添加“/ assets /”,但如果标准的CSS方式有用,我为什么要使用资产助手呢?
我想我错过了什么。它与部署到生产有关吗?
答案 0 :(得分:7)
使用帮助程序可以访问生产中的指纹URL。来自Asset Pipeline guide:
在生产环境中,Rails使用上面列出的指纹识别方案。默认情况下,假设资产已经过预编译,并且将由Web服务器作为静态资产提供。
在预编译阶段,MD5从编译文件的内容生成,并在写入光盘时插入文件名。这些指纹识别名称由Rails助手使用,代替清单名称。
所以在制作中,路径会附加一个MD5,你可以这样:
/assets/pancakes-af27b6a414e6da00003503148be9b409.png
有了校验和,Rails可以告诉浏览器永远缓存这些文件。然后,如果您执行更新其中一个资产的新版本,则校验和会更改并更改整个路径;新路径使浏览器认为它是一个全新的文件,因此它将再次获取它。如果没有校验和,您可以很容易地将旧文件卡在浏览器缓存中,而这种事情并不是一个快乐的时间。