Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Heroku提供资产的速度非常慢_Ruby On Rails_Heroku_Assets_Sprockets - Fatal编程技术网

Ruby on rails Heroku提供资产的速度非常慢

Ruby on rails Heroku提供资产的速度非常慢,ruby-on-rails,heroku,assets,sprockets,Ruby On Rails,Heroku,Assets,Sprockets,我在Rails应用程序中服务资产时遇到了巨大的困难。在我的VPS上加载一个2KB的映像(由nginx直接服务,而不是Rails)需要42毫秒。在Heroku上加载它有时可能需要1分钟以上 奇怪的是,在这一点上,应用程序只是一堆通过高压提供服务的静态页面 我的所有资产都在本地预编译。我已经安装了rails\u 12factor和heroku\u rails\u deflate gems 以下是我的链轮配置: config/initializers/assets.rb # Version of yo

我在Rails应用程序中服务资产时遇到了巨大的困难。在我的VPS上加载一个2KB的映像(由nginx直接服务,而不是Rails)需要42毫秒。在Heroku上加载它有时可能需要1分钟以上

奇怪的是,在这一点上,应用程序只是一堆通过高压提供服务的静态页面

我的所有资产都在本地预编译。我已经安装了rails\u 12factor和heroku\u rails\u deflate gems

以下是我的链轮配置:

config/initializers/assets.rb

# Version of your assets, change this if you want to expire all your assets.
Rails.application.config.assets.version = '1.0'

# Precompile additional assets.
# application.js, application.css, and all non-JS/CSS in app/assets folder are already added.
Rails.application.config.assets.precompile += %w( pages/home.js )
# Disable Rails's static asset server (Apache or nginx will already do this).
config.serve_static_assets = true

# Compress JavaScripts and CSS.
config.assets.compress = true
config.assets.js_compressor = :uglifier
config.assets.css_compressor = :sass

# Do not fallback to assets pipeline if a precompiled asset is missed.
config.assets.compile = false

# Generate digests for assets URLs.
config.assets.digest = true
config/environments/production.rb

# Version of your assets, change this if you want to expire all your assets.
Rails.application.config.assets.version = '1.0'

# Precompile additional assets.
# application.js, application.css, and all non-JS/CSS in app/assets folder are already added.
Rails.application.config.assets.precompile += %w( pages/home.js )
# Disable Rails's static asset server (Apache or nginx will already do this).
config.serve_static_assets = true

# Compress JavaScripts and CSS.
config.assets.compress = true
config.assets.js_compressor = :uglifier
config.assets.css_compressor = :sass

# Do not fallback to assets pipeline if a precompiled asset is missed.
config.assets.compile = false

# Generate digests for assets URLs.
config.assets.digest = true
你有什么想法吗

以下是我的日志摘录:

14-07-11T23:48:54.917535+00:00 heroku[router]: at=info method=GET path="/assets/pages/home-dca14429ad8cf7d73be6230207124ab1.js" host=v2-interconn.herokuapp.com request_id=aefbec46-f505-45b9-b368-1ad5f7924c70 fwd="188.10.253.161" dyno=web.1 connect=1 service=3 status=200 bytes=916
2014-07-11T23:48:54.911470+00:00 heroku[router]: at=info method=GET path="/assets/application-a6b582f07af35ba97eef7b73812c37b9.js" host=v2-interconn.herokuapp.com request_id=3cf43d9f-e35b-4f62-8cbc-47121e07375b fwd="188.10.253.161" dyno=web.1 connect=0 service=8 status=200 bytes=917
2014-07-11T23:48:54.940930+00:00 heroku[router]: at=info method=GET path="/assets/ballicons/letter-0223f57c4a985183df154ed1219f260e.svg" host=v2-interconn.herokuapp.com request_id=6c7a7b12-683e-42e7-9975-6ee58b17821e fwd="188.10.253.161" dyno=web.1 connect=1 service=2 status=200 bytes=940
2014-07-11T23:48:55.064240+00:00 heroku[router]: at=info method=GET path="/assets/ballicons/laptop-5ac5cd546c687e0bbba1e4043c5f62f8.svg" host=v2-interconn.herokuapp.com request_id=9a659d8b-8998-4f02-b8b3-edd1a6cfb34c fwd="188.10.253.161" dyno=web.1 connect=3 service=3 status=200 bytes=940
编辑
这个问题已经被Heroku解决了。感谢所有帮助过我的人!:)

赫罗库

我唯一能给你的建议就是把这个图像放到第三方服务上

Heroku本身托管在Amazon AWS平台上,因此服务这些资产将不受限制 没有任何问题。我一直在使用Heroku(a),我们的资产加载速度与我们需要的速度一样快

--

DB

我在Heroku身上发现的一件事是,如果你的数据库连接很糟糕,你就没有机会快速加载你的页面

db
连接是Heroku的致命弱点-除非你使用Heroku自己的连接,否则你必须确保你有一个快速连接


除此之外,最好的办法是提供您的日志供我们查看

我在推特上找到了修复我类似问题的信息

这似乎与WebSocket有关。禁用它似乎可以解决问题

heroku labs:disable websockets -a myapp -p production
这使得它可以像以前一样工作,尽管日志现在看起来不同了:)

感谢推特上的@dwaynemac@stephane_tavera

编辑

Heroku表示这是一个解决问题,但答案适用于再次发生的情况


这显然很糟糕,您需要修复它。你确定你的heroku应用程序正在生产模式下运行吗?请检查heroku配置,它可能正在暂存环境中运行?也许您仍在使用webrick服务器?Heroku正在生产中运行,而我使用Thin作为web服务器。支持部门无法帮助您吗?他们应该对自己的系统有更多的了解我已经开了罚单。希望他们至少知道可能发生了什么。可能与我的相似之处有关。我正在使用Heroku的数据库,日志没有显示任何奇怪的东西。我在问题中添加了一个摘录。现在效果很好。显然这是一个暂时的问题。谢谢!:)很高兴看到你修好了!!