当我尝试使用aws cloudfront渲染rails资产时,我试图找出问题所在。不确定是否有一个工具可以确定我的整个应用程序是否符合rails资产管道标准(是否符合其标准等)。任何帮助将不胜感激,甚至帮助我弄清楚我如何确定我的资产来自CloudFront,而不是来自我的应用程序。
答案 0 :(得分:0)
这是一个很好的教程
您可以通过查看生产环境的页面来源以及查看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?)。