问题标签 [asset-sync]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
424 浏览

ruby-on-rails - 使用 Asset Sync Gem 时 Heroku 上的 Slug 大小问题

我有一个拥有大量资产的 Rails 3.2 应用程序。没关系,因为我正在使用 [Asset Sync Gem( https://github.com/rumblelabs/asset_sync ) 将我所有已编译的资产推送到 S3 存储桶。

问题是这些资产仍然包含在 slug 大小中,即使应用程序使用 S3 上的版本。这导致我的 slug 大小最终超过 300MB 限制。

我不能使用.slugignore文件,因为这会阻止文件同步,那么在 AssetSync 将它们推送到 S3 并且在编译 slug 之前如何删除所有资产?

[更新]

我现在在本地预编译所有内容。Heroku 编译资产的速度非常慢,更重要的是,它每次都会编译所有内容。一旦你的资产达到了不小的规模,这真的很痛苦。我现在在本地预编译并有一个 Rake 任务检查清单并推送到 Heroku。

0 投票
1 回答
349 浏览

ruby-on-rails-3 - 绕过开发中公共目录中的资产

我有一个 Rails 3.2 项目部署到 Heroku 并使用 Asset Sync,它已经发展到有这么多资产的地步,在 Heroku 上预编译它们太慢了。所以我正在使用:

$ rake assets:precompile

…在本地编译资产(使用 Asset Sync 将它们推送到 S3 存储桶)。显然,这会assets在我的公共文件夹中创建一个包含所有预编译资产的文件夹。

现在,当我推送到 Heroku 时,它会看到我已经预编译了我的资产并跳过了预编译,从而使我的部署速度更快。

当我回到本地开发时,问题就来了。现在资产已经预编译,Rails 使用这些资产并且不会接收我对本地文件所做的更改。显而易见的事情是删除资产,但这意味着每次推送时我都需要先重新预编译资产,这很耗时。

那么如何告诉 Rails 在开发环境中忽略公共目录中的任何资产并使用我未预编译的本地文件。

0 投票
1 回答
523 浏览

ruby-on-rails-3 - 设置到期标头asset_sync

我正在使用 assets_sync gem 将我的资产上传到 s3 存储桶。在我的网站上运行 yslow 时,我会得到一个没有过期标题的图像列表。现在我可以手动设置这些,但是当你有大量图像时,可能需要一段时间..

在运行 rake assets:precompile 例如自动设置过期时间?assets_sync 配置中是否有任何内容允许我们这样做?

谢谢

0 投票
1 回答
1331 浏览

ruby-on-rails - 资产同步未上传到 S3

我无法使用 assets_sync 将我的资产上传到 S3

生产.rb

资产同步.rb

heroku 配置

$出口

http://blog.firmhouse.com/complete-guide-to-serving-your-rails-assets-over-s3-with-asset_sync

那些推送heroku资产指向//bucket_name.s3-eu-west-1.amazonaws.com/assets/icons/name_xxxxxxxxxx.png 并且在运行$rake assets:precompile文件时不会上传到S3并且只能在本地进行预编译。任何想法 ?非常感谢。

编辑:

我刚刚将 Gemfile 从:

到全球宝石

现在我收到警告信息[WARNING] fog: followed redirect to bucket_name.s3-external-3.amazonaws.com, connecting to the matching region will be more performant

我想我可以解决这个问题,但只有 css 文件被上传,而不是 js 文件和图像。

0 投票
2 回答
1405 浏览

ruby-on-rails - 我可以在资产编译后删除 Heroku 上的应用程序/资产以减少 slug 大小吗

只是一个思考。如果您使用asset_sync gem 编译资产并且不回退到在运行时编译链轮,您可以使用.slugignore 从您的slug 中删除app/assets 文件夹以减小slug 大小吗?

我已经测试过,预编译的资产不再使用资产管道提供服务。Rails 必须查找 app/assets 文件夹,如果它不可用就会变得脾气暴躁,默认为按需编译。

其他人尝试过这种效果吗?我发现的唯一一件事是在 slug-ignore 之后调用构建备份,因此如果我使用涡轮链轮,它可能会破坏部署之间的缓存。

0 投票
1 回答
19886 浏览

ruby-on-rails-4 - 在 public/ 或 app/assets/ 中的 Rails 4 静态资产

抱歉,如果这是一个简单问题的冗长积累,但我想弄清楚我的想法。

我现在在几个项目中使用了 Rails 4,并且一直在使用 Rails 4 中image_tag('/assets/image.png')资产路径助手如何工作的更改。直到今天,我决定了解有关更改的更多信息并发现了第一个更改注意 sprockets-rails。我还注意到ASSET_PUBLIC_DIRECTORIESRails 助手中的 /actionview/lib/action_view/helpers/asset_url_helper.rb#L170 仅指向公共文件夹。对我来说很明显,如果您正在访问静态文件,Rails 希望您使用公用文件夹。

所以现在我已经弄清楚了,我就是不明白为什么边缘导轨文档清楚地说明了这一点:

在以前的 Rails 版本中,所有资产都位于公共的子目录中,例如图像、javascript 和样式表。使用资产管道,这些资产的首选位置现在是 app/assets 目录。

实际上,image_path 会生成一个指向 public/images 文件夹的 uri,这完全相反。

总而言之,我确实需要使用所有可用的助手和摘要构建器,因为我最终使用assets_sync将我的资产部署到 S3 。

所以我的问题是;是否有放置图像/非编译资产和使用asset_path 助手的正确位置?所有文档和所有其他堆栈溢出对话都是关于人们使用 app/assets 文件夹的,但 sprockets-rails 希望我们将 public 用于非摘要资产。网络上的文档和信息是否只是需要更新,或者其他人只是在所有资产路径前加上 /assets/?

更新:我认为我确实遇到了一个问题,即我没有重新启动我的开发服务器,并且 app/assets/images 中的图像没有显示,因此它会回退到公共。另请注意,我在回形针 default_url 中使用了资产助手(在我发现的几个堆栈溢出答案中,它被引用为指向资产的方式,但是在回形针中使用带有插值选项的资产路径助手也将回退到公共,因为显然,未插入的资产名称不会作为现有文件被发现。

0 投票
1 回答
237 浏览

ruby-on-rails - Asset Sync + Rackspace 的编码问题

我可以成功部署到 heroku,但是如果我点击我的.css文件,我会得到这个

在此处输入图像描述

宝石文件

资产同步

请求标头

响应标头

0 投票
1 回答
531 浏览

ruby-on-rails - 一些不服务于 S3 的资产

我的资产使用asset_sync(1.0.0)提供给S3,并且几乎可以正常工作,只是从加载的资产css,就像background-image:url.. 所有javascript文件都<script src="/assets/public/js_validation.js"></script>不会被推送到s3 这些资产点,https://xxx.herokuapp.com/assets/sub-dir/..但它们确实得到了预编译。此外,其中一些资产确实会受到推动,s3但存在预测问题。回顾一下,我认为问题在于清单之外的所有资产在推送到..css/js时都被忽略了?s3

非常感谢。

编辑

生产中的工作资产: some_asset.xxxxxxxxxxxx.png

在生产中不工作的资产:(some_asset.png清单文件之外的资产)

在开发中似乎一切正常......

有任何想法吗 ?

更新 :

看法

<%= javascript_include_tag "/assets/js_standalone/validation.js" %>

=><script src="//d3j9rtukkaxslew.cloudfront.net/assets/js_standalone/homepage.js"></script>

生产.rb

在 S3 上,我是在文件末尾添加的指纹

homepage-ee97ca738affc4938c92445069f21cd2.js

但不是在生产中我收到此错误消息[Error] Failed to load resource: the server responded with a status of 403 (Forbidden) (validation.js, line 0)

0 投票
3 回答
983 浏览

heroku - ckeditor-在rails 4升级后heroku坏了

似乎无法弄清楚为什么 ckeditor 不再适用于heroku。它在我的本地机器上运行良好。

更新:当资产托管在 heroku 上时,无需asset_sync gem 即可工作 - 但不能使用它。

错误:Uncaught SyntaxError: Unexpected token < in config.js:1 ckeditor 找不到 config.js,< 是 404 未找到页面的开始标记 加载资源失败:服务器响应状态为 406(不可接受)

感谢我能得到的任何帮助。

ckeditor gem,Heroku,Rails 4,asset_sync

应用程序.js

gemfile - 版本 4.0.7

应用程序.rb

生产.rb

0 投票
1 回答
1223 浏览

ruby-on-rails - asset_sync gem 错误:rake assets:precompile 失败:与服务器证书不匹配(OpenSSL::SSL::SSLError)

资产同步宝石错误:(

我开始的第一个错误与unfgem 有关,所以我添加gem "unf", "~> 0.1.3"到我的 gemfile 并再次尝试。不走运 :( 经过更多研究后,我可能对与我的 aws 存储桶相关的另一个设置有问题。我的 dns 是通过 route53 托管的,我想使用自定义域来服务我的资产。这意味着我的存储桶看起来assets.domain.com不仅仅是一个简单的名称。当我尝试运行rake assets:precompile它时,它会因错误而中止,rake aborted! hostname "assets.domain.com.s3-us-west-1.amazonaws.com" does not match the server certificate (OpenSSL::SSL::SSLError)"但该错误似乎是错误的。为了使用您自己的子域,即资产。我读到存储桶必须设置为静态网站。这意味着 url看起来assets.domain.com.s3-website-us-west-1.amazonaws.com似乎与错误代码不匹配。

我在这里错过了一个设置吗?也许我疯了...谢谢你的帮助。

我的 production.rb 设置

我当前的初始化文件: