标签: cedar

如何在Heroku Cedar上的Play Framework 1应用程序上启用GZIP压缩?

我想为公共资产和HTTP响应启用GZIP压缩以提高性能.我的网站有很多移动访问权限.

据我所知,Play Framework中没有任何内置支持这一点,而Heroku似乎也没有解决方案.

在我的应用上开始获得压缩的最佳方法是什么?

compression gzip heroku playframework cedar

11
推荐指数
3
解决办法
5033
查看次数

redmine部署在heroku雪松上

我一直在撞墙试图在heroku雪松上部署redmine 2.0.3.

使用sqlite gem部署时遇到了很多问题,所以我从Gemefile中删除了所有sqlite引用,删除了Gemfile.lock,运行了bundle install,并愉快地推送到了heroku.

我跑了heroku run rake db:migrate,我浏览了我的应用程序(http://blooming-river-8784.herokuapp.com/),我看到以下内容:

UPDATE!- >当我跑步时,heroku run rake db:migrate我收到以下警告信息:

Running rake db:migrate attached to terminal... up, run.1
DEPRECATION WARNING: You have Rails 2.3-style plugins in vendor/plugins! Support for these plugins will be removed in Rails 4.0. Move them out and bundle them in your Gemfile, or fold them in to your app as lib/myplugin/* and config/initializers/myplugin.rb. See the release notes for more on this: http://weblog.rubyonrails.org/2012/1/4/rails-3-2-0-rc2-has-been-released. (called from <top (required)> …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails heroku redmine cedar

11
推荐指数
2
解决办法
2233
查看次数

Heroku*.js不是预编译错误

我在Heroku Cedar堆栈上使用Rails并且在编译资产时没有抛出任何问题,但后来我得到了500个内部服务器错误:

2012-06-25T23:22:59+00:00 app[web.1]: ActionView::Template::Error (bootstrap-datepicker.js isn't precompiled):
Run Code Online (Sandbox Code Playgroud)

知道可能导致这种情况的原因吗?这是我包含的javascript文件(除了我在本地下载)https://github.com/eternicode/bootstrap-datepicker/blob/master/js/bootstrap-datepicker.js

我将它包含在我的application.html.erb中,如下所示:

<%= javascript_include_tag "bootstrap-datepicker" %>
Run Code Online (Sandbox Code Playgroud)

是因为它不是coffeescript文件吗?任何帮助表示赞赏!

ruby-on-rails heroku ruby-on-rails-3 asset-pipeline cedar

10
推荐指数
1
解决办法
4212
查看次数

Heroku Cedar和nginx(gzip)

根据接受的答案中的评论Rails如何Gzip Javascript?(Heroku)和官方雪松文档(http://devcenter.heroku.com/articles/http-routing#the_herokuappcom_http_stack):

由于对Cedar应用程序的请求直接发送到应用程序服务器 - 不通过像nginx这样的HTTP服务器代理 - 因此必须在应用程序中完成任何响应压缩.对于Rack应用程序,可以使用Rack :: Deflater中间件来完成.对于gzip压缩静态资源,请确保在中间件堆栈中的ActionDispatch :: Static之前加载Rack :: Deflater.

但是,据我所知,我的应用程序在herokuapp.com(雪松)上运行,并且根据heroku日志,使用nginx来提供数据(这很棒).我还通过Content-Encoding HTTP标头确认它正在向浏览器gzipping数据.根据文件,这不应该发生在雪松上.我在这里错过了什么吗?

gzip nginx heroku cedar

9
推荐指数
1
解决办法
3723
查看次数

Heroku Cedar上的静态网站

我尝试按照这里的说明在Heroku的Cedar堆栈上创建一个静态网站.

我把网站放在这里.

当我尝试推送应用程序(使用"git push heroku master")时,我收到以下错误:

Kushs-MacBook-Air:hgtr kushpatel$ git push heroku master
Counting objects: 7, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (7/7), done.
Writing objects: 100% (7/7), 1.29 KiB, done.
Total 7 (delta 1), reused 0 (delta 0)

-----> Heroku receiving push
-----> Removing .DS_Store files
 !     Heroku push rejected, no Cedar-supported app detected

To git@heroku.com:gentle-warrior-1301.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs …
Run Code Online (Sandbox Code Playgroud)

static rack heroku cedar

8
推荐指数
1
解决办法
4093
查看次数

Stream中的CSV导出(来自Heroku上的Django管理员)

我们需要从运行在Heroku上的Django管理员导出包含模型数据的csv文件.因此,我们创建了一个操作,我们在其中创建了csv并在响应中返回了它.这工作正常,直到我们的客户端开始导出大量数据,我们遇到了Web worker的30秒超时.

为了避免这个问题,我们考虑将csv流式传输到客户端,而不是先在内存中构建它并将其一起发送.Trigger是这条信息:

Cedar支持长轮询和流式响应.您的应用程序有一个最初的30秒窗口,以单个字节响应客户端.发送每个字节后(从客户端收到或由您的应用程序发送),您重置一个滚动的55秒窗口.如果在55秒窗口期间没有发送数据,则终止连接.

因此,我们实现了一些看起来像这样的东西来测试它:

import cStringIO as StringIO
import csv, time

def csv(request):
    csvfile = StringIO.StringIO()
    csvwriter = csv.writer(csvfile)

def read_and_flush():
    csvfile.seek(0)
    data = csvfile.read()
    csvfile.seek(0)
    csvfile.truncate()
    return data

def data():
    for i in xrange(100000):
        csvwriter.writerow([i,"a","b","c"])
        time.sleep(1)
        data = read_and_flush()
        yield data

response = HttpResponse(data(), mimetype="text/csv")
response["Content-Disposition"] = "attachment; filename=test.csv"
return response
Run Code Online (Sandbox Code Playgroud)

下载的HTTP标头如下所示(来自FireBug):

HTTP/1.1 200 OK
Cache-Control: max-age=0
Content-Disposition: attachment; filename=jobentity-job2.csv
Content-Type: text/csv
Date: Tue, 27 Nov 2012 13:56:42 GMT
Expires: Tue, 27 Nov 2012 13:56:41 GMT
Last-Modified: Tue, …
Run Code Online (Sandbox Code Playgroud)

python django heroku django-admin cedar

8
推荐指数
1
解决办法
1734
查看次数

Rails 3.1和Http页面缓存

鉴于Heroku Cedar没有Varnish提供的http缓存我想使用Rack::Cache.我被告知rails 3.1.1 Rack::Cache默认处于活动状态,我只需要确保在配置中:

config.action_controller.perform_caching = true
Run Code Online (Sandbox Code Playgroud)

我需要选择一个缓存存储,对于我正在使用的这个实验:

config.cache_store = :memory_store
Run Code Online (Sandbox Code Playgroud)

在我要缓存的页面的操作中,我添加了以下行:

response.header['Cache-Control'] = 'public, max-age=300'
response.header['Expires'] = CGI.rfc1123_date(Time.now + 300)
Run Code Online (Sandbox Code Playgroud)

此代码用于与Varnish一起使用,第一个请求将返回200,随后(5分钟)将返回a 304.

Rails 3.1和Heroku Cedar Stack不会发生这种情况.我确实在响应中获得了这些标头,但后续请求返回200而不是304.

我究竟做错了什么?谢谢.

ruby-on-rails heroku ruby-on-rails-3.1 rack-cache cedar

7
推荐指数
1
解决办法
1050
查看次数

生产佣金任务不承认我的模型

当我运行Heroku Bamboo时,这从来都不是问题.现在,在Cedar上,每当我尝试从服务器上的rake任务中访问我的模型时,我都会收到错误.这种情况发生rake db:seed在标准的rake任务中,以及我自己定制的任务中明确包含:environment.我甚至多余地这样做:

namespace :db do
  desc "Update db"
  task :new_seed => :environment do
    require './Scraped_Data/Games/code/column-headers.rb'
    require 'csv'
    require 'net/http'
    require './config/environment.rb'

    # code here...

  end
end
Run Code Online (Sandbox Code Playgroud)

我在其他地方找不到任何关于这个问题的提及,所有这些任务都在开发中完美运行.感谢您的任何见解,这里是完整的错误消息,一旦他们在Heroku上遇到我的模型,就会吐出rake任务:

rake aborted!
uninitialized constant Object::Movie
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/ext/module.rb:36:in `const_missing'
/app/lib/tasks/new_seed.rake:187:in `block in load_scraped_data'
/app/vendor/bundle/ruby/1.9.1/gems/rest-open-uri-1.0.0/lib/rest-open-uri.rb:37:in `open'
/app/vendor/bundle/ruby/1.9.1/gems/rest-open-uri-1.0.0/lib/rest-open-uri.rb:37:in `open'
/app/lib/tasks/new_seed.rake:148:in `load_scraped_data'
/app/lib/tasks/new_seed.rake:550:in `block (2 levels) in <top (required)>'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:205:in `call'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:205:in `block in execute'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:200:in `each'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:200:in `execute'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:158:in `block in invoke_with_call_chain'
/usr/local/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:151:in `invoke_with_call_chain'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:144:in `invoke'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:116:in `invoke_task'
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `block (2 levels) …
Run Code Online (Sandbox Code Playgroud)

rake model ruby-on-rails heroku cedar

7
推荐指数
1
解决办法
3121
查看次数

heroku:bash:bundle:找不到命令

我按照他们的指示将一个Heroku应用程序从Aspen移植到Heroku的Cedar堆栈.

我正处于最后的部署阶段.我收到此错误:

    2012-10-22T11:23:53+00:00 heroku[web.1]: Starting process with command `bundle exec thin start -p 40310 -e production`
2012-10-22T11:23:54+00:00 app[web.1]: bash: bundle: command not found
Run Code Online (Sandbox Code Playgroud)

我无法看到我如何负责告诉Heroku堆栈捆绑包或提供捆绑包,因为捆绑包被它用于这个工作.此命令在应用程序的Procfile中指定:

web: bundle exec thin start -p $PORT -e $RACK_ENV
Run Code Online (Sandbox Code Playgroud)

stackoverflow上的另一个类似问题表明,如果最初没有Procfile将应用程序推送到Heroku,就会发生这种情况,因此Heroku对于它是什么类型的应用程序有错误的想法.那张海报删除了他的应用并创建了一个新的并报告了成功.但是,删除和重新创建移植的应用程序所需的工作量很大.有什么方法可以解决这个问题而不是重新开始吗?

heroku bundler cedar

6
推荐指数
1
解决办法
4986
查看次数

Heroku应用程序的运行时是否可以知道它的提交ID?

我想我的Heroku应用程序(Play/Scala,在Heroku Cedar上运行)的运行时能够向我报告它是从哪个git提交的.Heroku应用程序通常由Heroku基础架构上的slug编译器构建 - 不幸的是,slug编译器将此作为此构建过程的早期部分:

删除未使用的文件,包括.git目录,.gitmodules文件,log和tmp中的任何内容,以及顶级.slugignore文件中指定的任何内容.

...所以Git信息不再可用于sbt-buildinfo我用于记录Git提交的插件.

如何在slug中记录HEAD提交?这些信息是否有可用的环境变量?

git heroku cedar sbt-buildinfo

6
推荐指数
1
解决办法
853
查看次数