我怎么知道我的整个应用程序是Rails Asset Pipeline Compliant?

时间:2015-08-30 07:39:47

标签: ruby-on-rails amazon-web-services asset-pipeline amazon-cloudfront

当我尝试使用aws cloudfront渲染rails资产时,我试图找出问题所在。不确定是否有一个工具可以确定我的整个应用程序是否符合rails资产管道标准(是否符合其标准等)。任何帮助将不胜感激,甚至帮助我弄清楚我如何确定我的资产来自CloudFront,而不是来自我的应用程序。

1 个答案:

答案 0 :(得分:0)

这是一个很好的教程

https://ruby.awsblog.com/post/Tx3VS6Q2Q2K0LJR/Caching-the-Rails-Asset-Pipeline-with-Amazon-CloudFront

您可以通过查看生产环境的页面来源以及查看css和js文件的服务位置来判断是否通过cloudfront服务您的资产,如果它正在工作,您将找到一些东西像这样

<link data-turbolinks-track="true" href="http://your-distribution-url.cloudfront.net/assets/application-bfe54945dee8eb9f51b20d52b93aa177.css" media="all" rel="stylesheet" />

或者,如果您为资产cdn.myapp.com配置了域名,例如,您将发现资产是从中提供的

---------------- 更新 -----------------

一般情况下,您希望先将资源整理到CDN之前进行整理,对于img标记,如果您使用image_tag则不重要,重要的是它的网址是什么?图片;如果它是一个资产图片(可以在app/assets/images中找到,例如使用asset_url帮助程序,以便通过您的资产管道提供服务(不适用于您的应用程序和#39;用户个人资料图片等图片。

当您使用资源(例如背景图片)时,在CSS文件中,使用asset-url帮助程序通过资产管道获取图像。

将javascript添加到您的视图中也是一种不好的做法,因为您无法从资源管道中为此javascript提供服务,尝试将所有javascript放在单独的js或coffescript文件中并使用&#34;不引人注目的Javascript&#34;练习(更多关于这个答案What's the best way to embed a small chunk of javascript in Rails?)。