Lin*_*der 5 ruby-on-rails ruby-on-rails-3
当谷歌机器人试图访问我的一个控制器时,我收到此错误消息.
ActionView::MissingTemplate: Missing template channels/show, application/show with {:locale=>[:"sv-SE", :en], :formats=>["*/*;q=0.9"], :handlers=>[:erb, :builder, :haml]}. Searched in: * "/opt/www/app/releases/20120228181534/app/views" * "/opt/www/app/shared/bundle/ruby/1.9.1/gems/kaminari-0.13.0/app/views"
Run Code Online (Sandbox Code Playgroud)
问题是我无法重现它.错误发生在上周的121次(根据airbrake).
这是回溯.
第18行是我的应用程序中唯一提到的行,它是super此代码的一部分
def render(options = {}, extra_options = {}, &block)
if request.headers['X-PJAX'] or params[:no_layout] == "true" or params[:_pjax]
options[:layout] = false
end
super(options, extra_options, &block)
end
Run Code Online (Sandbox Code Playgroud)
控制器方法channels#show如下所示
def show
@channel = # ...
@today = # ...
@yesterday = # ...
@tomorrow = # ...
end
Run Code Online (Sandbox Code Playgroud)
访问引发谷歌机器人错误的网址不会给我带来错误.
唯一失败的网址是包含特殊字符的网址{"action"=>"show", "id"=>"25-jönköping", "controller"=>"channels"}.该ORIGINAL_FULLPATH值设置为/channels/25-j%c3%b6nk%c3%b6ping.
我正在使用rails 3.2.1.
我也在 Rails 3 应用程序上看到了这个错误,并且在复制该错误方面也遇到了同样的情况。日志有丢失模板错误,但当我手动尝试请求时,它工作正常。
我怀疑来自 Google 的 HTTP 请求没有设置 Rails 正确处理的 mime。我发现的粗略解决方案是删除视图模板 mime,所以
example/index.html.erb
Run Code Online (Sandbox Code Playgroud)
就是现在
example/index.erb
Run Code Online (Sandbox Code Playgroud)
这会阻止缺少模板错误,因为该模板将用于所有 mime。
| 归档时间: |
|
| 查看次数: |
4372 次 |
| 最近记录: |