问题标签 [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 回答
36 浏览

ruby-on-rails - 在 Rails 中,处理您不想提交到 repo 和资产管道的非常大的文件(例如视频)的最佳方法是什么?

我有一个 Rails 应用程序。

我在资产管道中有一些非常大的视频(值得几场演出)。

我想要做的是从 repo 和部署过程中删除这些视频,因为巨大并且它减慢了这个过程。

但是,我仍然希望他们以类似于资产管道和资产同步的方式行事。并通过对 repo 的更改进行版本控制。

在这样的仓库中处理大型视频/文件的最佳方法是什么?

0 投票
0 回答
234 浏览

heroku - Rails 4 - 资产指纹自发地从资产路径中丢失

配置:Heroku 上的 Rails 4、HTML、CSS。

我有一个已经投入生产五个月的 Rails 4 应用程序。这是我的production.rb中的内容:

每当我投入生产时,我都会使用 清理我的资产rake assets:clean,然后使用rake assets:precompile. 这会对我的资产进行指纹识别,并将其直接推送到我的 S3 静态文件存储桶,这些存储桶通过云端提供服务。然后我将我的应用程序实时推送到 Heroku。

在 .html.erb 主页上,我通过 Rails 标签调用我的静态文件,如下所示:

哪个使用指纹正确渲染。例如,第二个最近生成了这个资产路径:http://dynasfakeurl.cloudfront.net/assets/application-17892abdffc77f1fb1be125bab.css

通常,这很好用。但是,我现在遇到了两次问题,在我最后一次推送 12-16 小时后,我所有的资产路径都自发地失去了指纹。例如,样式表标签最后生成了这个资产路径:http://dynasfakeurl.cloudfront.net/stylesheets/application.css. 哪个不存在。因此,当我加载页面时,它无法加载资产。

在过去的几个小时里,我一直在尝试调试它,但无法弄清楚为什么我的资产路径会在没有我推动任何东西的情况下自发地在生产中丢失它们的指纹。

0 投票
3 回答
4705 浏览

ruby-on-rails - AngularJS 指令和模板中的 Rails 图像资产

我有使用这些宝石的带有 AngularJS 的 Rails 4 应用程序:

  • 宝石'angularjs-rails'
  • 宝石'角导轨模板'
  • 宝石“资产同步”

它适用于这样的模板:

图像正确渲染。但是在我的其他js中

我从浏览器控制台收到“assets/feed.icon.heart.png”未找到错误。我在 app/assets/feed.icon.heart.png 下有 feed.icon.heart.png。

ps:忘了提我使用资产同步gem在amazon s3中托管资产。该图像在开发中运行良好,但在生产中却不行。

0 投票
0 回答
122 浏览

ruby-on-rails - asset_sync 不使用 Rails 3 调用 md5 散列资产

我想知道是否有人可以看到我的asset_sync 配置有任何问题,当上传到我的存储桶时,正在上传原始版本和 md5-hash 版本,而不仅仅是散列版本,这是正确的吗?

此外,当尝试调用资产时,它调用的是原始文件名而不是 md5 哈希,所以

代替

我的初始化程序看起来像这样

当我部署到 heroku rake:assets 预编译运行时,但我也在本地运行,所以想知道,y manifest.yml 文件是否不正确?我可以删除这个并创建一个新的吗?

如果需要更多信息,请告诉我

谢谢

编辑

所以我找到了创建原始文件和指纹资产的原因

“Rails 3 默认编译一次生成指纹资产,一次生成非指纹资产(指纹资产在文件名中有 MD5 哈希)。

您可以使用 turbo-sprockets-rails3 gem 从一个编译中创建两者。

在 Rails 4 中,此功能被提取到 sprockets-rails gem 中并且行为发生了变化,因此在 Rails 4 中不会发生双重编译。”

在这个阶段,虽然我仍然不知道为什么没有调用指纹资产

0 投票
1 回答
1588 浏览

ruby-on-rails - 带有asset_sync的s3上的Rails资产-CSS背景图像url缺少AWS存储桶名称

首先让我先说在 Ruby 和 Rails 方面我是一个完全的新手,所以希望我没有犯一个菜鸟错误。

我已经找到了一个已成功部署到 heroku 的应用程序的源代码;并在开发模式下运行它工作正常,但是当我将其切换到生产模式时,图像不会显示。

该应用程序正在使用assets_sync Gem,并且应该使用 S3 存储桶从 AWS 提供图像以及其他资产。css 和 js 文件正确通过,但图像不正确。这篇文章很好地解释了它应该如何工作 https://firmhouse.com/blog/complete-guide-to-serving-your-rails-assets-over-s3-with-asset_sync

据我所知,css 和图像是预编译的;使用从 sass 生成的 css,并将图像组合成一个精灵。我发现这篇文章对于解释这里发生的事情很有用http://compass-style.org/help/tutorials/spriting/(对于有经验的 Rails 开发人员来说可能没什么新东西)

如果我深入挖掘并查看正在运行的应用程序的 css,则背景图像 url 属性缺少 url 中的存储桶名称。

这是一个例子;我确定这部分//.s3应该是//mybucket.s3

如果我把网址直接放在浏览器地址栏中 - 没有图像!。但是,只要我添加存储桶名称,就会下载图像。即以下工作,确认图像存在于 s3 存储桶中。

这意味着 css 未正确预编译,并且可能无法从配置中找到存储桶名称。

我检查了heroku 配置是否正确。使用以下设置:

  • FOG_PROVIDER,
  • AWS_ACCESS_KEY_ID
  • AWS_SECRET_ACCESS_KEY
  • FOG_DIRECTORY
  • FOG_REGION

我花了相当多的时间在谷歌上搜索这个问题而没有结果。那么有没有人以前见过这个问题,或者提出了解决问题的方法?

0 投票
1 回答
767 浏览

twitter-bootstrap - 如何为引导的 Web 资产启用 Amazon S3 CORS

我正在使用asset_sync gem for rails在Amazon S3中托管twitter 引导资产。即使在除 Firefox 之外的其他浏览器上发出一点警告,我似乎也能正常工作。在 Firefox 中,它显示奇怪的字符而不是引导字体图标。使用firebug控制台引发的错误如下:

谁能帮我解决这个问题。

0 投票
1 回答
237 浏览

ruby-on-rails - assets_sync 没有将资产编译到 S3

我正在使用本教程,我已经完成了运行的部分

如果您查看该网站,您会看到她显示了该命令的输出以及它的外观。但是,我没有得到这样的回应。我像往常一样得到正常的编译文件(需要提交和推送)。

我在 S3 中检查了我的存储桶,那里也没有任何东西。我已经按照本教程学习了 T,所以我不确定我哪里出错了,但我真的很感谢有人的帮助。

先感谢您。

编辑:所以我推到 heroku 看看会发生什么,我的资产链接发生了变化(我的样式表链接到 AWS),但它们仍然没有上传到存储桶,所以当这种情况发生时,我的网站当然没有样式。希望这是足够的信息。

0 投票
2 回答
230 浏览

ruby-on-rails-3 - asset_sync 修改文件内容编码

我正在使用asset_sync 1.1.0 和fog 1.25.0。当asset_sync 将我的文件上传到S3 并请求它们返回时,我在响应中发现了一个空标头Content-Encoding:。但是,当我使用 S3fox(firefox 扩展)手动上传它们时,此标头不存在。

我的问题是如何禁用asset_sync 添加此标头?

注意:在 github 上的asset_sync repo 中打开了多个问题,但到目前为止没有回复,他们也关闭了一个未解决的问题。

0 投票
1 回答
713 浏览

ruby-on-rails - 如何从 Rails 控制器获取 S3 资产的路径

我的设置

我正在使用 Rails 3、asset_sync 和回形针。

  • 当我在本地机器上开发时,我希望通过资产管道提供资产。
  • 在生产中,我希望从S3提供资产。

我的问题

如何从 Controller/Model/whatever 访问资产路径?(如果我image_path("favicon.ico")在视图中使用相同的 URL)

我见过无数这样的问题,其中接受的答案建议使用ActionController::Base.helpers.asset_path("favicon.ico"). 没关系,但是,当我在生产中尝试它时,我得到一个指向我的生产服务器的 URL,而不是指向 S3。

我在生产 HAML 中添加了一段测试代码来演示该问题:

%link{:rel => "image_src", :href => image_path("test.png")} %link{:rel => "image_src", :href => ActionController::Base.helpers.image_path("test.png")}

...生成 HTML:

<link href='http://mybucket.s3.amazonaws.com/assets/test-2cfd63058597b0c73221f3c1988c121e.png' rel='image_src'> <link href='/assets/test-2cfd63058597b0c73221f3c1988c121e.png' rel='image_src'>

所以,我认为ActionController::Base.helpers.image_path不是解决问题的正确方法。

我也看到很多答案说view_context应该使用。但是,当我需要 URL 时,我没有控制器实例,所以这种方法也不适合我。

更多背景(如果您有兴趣)

我想要实现的是从 S3 提供 Paperclip 默认图像。

has_attached_file :logo, :styles => { ... }, :default_url => # Here, I need the URL that points to S3, if this is run in production.

我不想硬编码指向我的 S3 存储桶的 URL,因为我想在开发时从本地机器提供文件(如此处建议:https ://github.com/thoughtbot/回形针/问题/1092

0 投票
1 回答
981 浏览

ruby-on-rails - 提供 .js 和 .css 资产 cloudfront CDN Heroku Rails 4 App 的问题

我正在尝试通过 Cloudfront CDN 托管我的 Rails 4 应用程序的资产。我曾经使用asset_sync 和s3,但我想切换到CDN。

当我打开我的 Heroku 应用程序时,我看到所有页面都是纯 HTML。没有加载任何 JS 或 CSS。

这些是我从控制台得到的错误:

控制台错误截图:http: //i61.tinypic.com/15rxdsj.jpg

http://i61.tinypic.com/15rxdsj.png

另外,我不确定我是否在 Cloudfront Origin Settings 上正确设置了我的 Origin Domain Name 和 Origin Path。目前,我使用我的 heroku 应用程序 url 作为源域名,使用“/production/assets”作为源路径。

Production.rb 文件: http: //pastebin.com/2dzLpGfE

过去一周我一直在尝试让 Heroku 应用程序显示 CSS 和 JS,但没有成功。我将不胜感激任何见解。提前致谢!