【问题标题】:Heroku Rails App Can't Find Views For CrawlersHeroku Rails 应用程序找不到爬虫的视图
【发布时间】:2016-10-14 12:35:49
【问题描述】:

我的 heroku 应用程序对正常的网络请求响应良好:http://feedmevr.herokuapp.com/uploads/10

不幸的是,当使用 Facebook DebuggerTwitter Debugger 时,这些日志会返回 500 错误:

2016-06-13T23:30:14.595942+00:00 heroku[router]: at=info method=GET path="/uploads/10" host=feedmevr.herokuapp.com request_id=50451e5c-eda1-4225-83f9-cff8c183fd82 fwd="104.7.65.62" dyno=web.1 connect=2ms service=101ms status=200 bytes=8533
2016-06-13T23:30:29.974017+00:00 heroku[router]: at=info method=GET path="/robots.txt" host=feedmevr.herokuapp.com request_id=09617086-d1d1-49d2-9e51-6b6bf4f90917 fwd="199.59.148.209" dyno=web.1 connect=1ms service=2ms status=200 bytes=154
2016-06-13T23:30:30.141722+00:00 app[web.1]:   Upload Load (2.0ms)  SELECT  "uploads".* FROM "uploads" WHERE "uploads"."id" = $1 LIMIT 1  [["id", 10]]
2016-06-13T23:30:30.117058+00:00 app[web.1]: Processing by UploadsController#show as */*
2016-06-13T23:30:30.117070+00:00 app[web.1]:   Parameters: {"id"=>"10"}
2016-06-13T23:30:30.178367+00:00 app[web.1]:
2016-06-13T23:30:30.178376+00:00 app[web.1]: ActionView::MissingTemplate (Missing template uploads/show, application/show with {:locale=>[:en], :formats=>[:all], :variants=>[], :handlers=>[:erb, :builder, :raw, :ruby, :coffee, :arb, :jbuilder]}. Searched in:
2016-06-13T23:30:30.178378+00:00 app[web.1]:   * "/app/app/views"
2016-06-13T23:30:30.178379+00:00 app[web.1]:   * "/app/vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-3b2015c8948b/app/views"
2016-06-13T23:30:30.056383+00:00 app[web.1]: Started GET "/uploads/10" for 199.59.148.209 at 2016-06-13 23:30:30 +0000
2016-06-13T23:30:30.170305+00:00 app[web.1]:    (1.8ms)  SELECT COUNT(*) FROM "zip_files" WHERE "zip_files"."upload_id" = $1  [["upload_id", 10]]
2016-06-13T23:30:30.177291+00:00 app[web.1]: Completed 500 Internal Server Error in 60ms
2016-06-13T23:30:30.178382+00:00 app[web.1]:
2016-06-13T23:30:30.178383+00:00 app[web.1]:
2016-06-13T23:30:30.178382+00:00 app[web.1]:   app/controllers/uploads_controller.rb:15:in `show'
2016-06-13T23:30:30.178380+00:00 app[web.1]:   * "/app/vendor/bundle/ruby/2.2.0/gems/devise-4.1.0/app/views"
2016-06-13T23:30:30.178381+00:00 app[web.1]: ):
2016-06-13T23:30:30.178379+00:00 app[web.1]:   * "/app/vendor/bundle/ruby/2.2.0/gems/kaminari-0.16.3/app/views"

"/app/app/views" 的搜索结果特别奇怪,因为它应该在 "/app/views" 中,但我不知道是什么原因造成的。

我整天都在尝试解决这个问题,但无济于事。从 Puma 服务器切换到 Unicorn 服务器不起作用。

非常感谢您的帮助...我正要从墙上探出头来。

【问题讨论】:

    标签: ruby-on-rails facebook heroku twitter facebook-opengraph


    【解决方案1】:

    终于明白了。 Rails 应用程序抛出错误,因为我使用的是respond_to。我不确定为什么这只会影响爬虫。

    旧代码:

    def show
      respond_to do |format|
        if @upload.downloadable?
          format.all
        else
          flash[:error] = 'The experience you tried to view is invalid'
          format.html { redirect_to :root }
          format.json
        end
      end
    end
    

    新代码:

    def show
      if request.format != :json && !@upload.downloadable?
        flash[:error] = 'The experience you tried to view is invalid.'
        redirect_to uploads_url
      end
    end
    

    【讨论】:

      猜你喜欢
      • 2011-08-10
      • 2015-01-01
      • 1970-01-01
      • 2014-05-17
      • 1970-01-01
      • 2019-08-12
      • 1970-01-01
      • 1970-01-01
      • 2015-02-21
      相关资源
      最近更新 更多