我如何知道我的整个应用程序是否符合 Rails Asset Pipeline 标准?

How do I know my whole app is Rails Asset Pipeline Compliant?

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

这里有一个很好的教程

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

您可以通过查看生产环境的页面源来判断从云端提供您的资产是否有效,并查看您的 css 和 js 文件是从哪里提供的,如果它有效,您会发现一些东西像这样

<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 并不重要,重要的是 url 图像;如果它是资产图像(可以在 app/assets/images 中找到,例如使用 asset_url 帮助程序,以便它通过您的资产管道提供服务(不适用于您的应用程序图像,如用户个人资料图像) .

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

此外,将 javascript 添加到您的视图中也是一种不好的做法,因为您将无法从您的资产管道中为这个 javascript 提供服务器,请尝试让您的所有 javascript在单独的 js 或 coffescript 文件中并使用 "Unobtrusive Javascript" 实践(更多关于此答案 )。