在生产中,我们经常得到以下例外情况:
ActionView::MissingTemplate发生在constructions#show中: 缺少模板构造/显示,应用/显示与{:locale=3D>:= ru,:formats=3D>:jpeg,“图像/pjpeg”,:png,:gif,:handlers=3D>:erb,:b= uilder,:咖啡,:jbuilder,:haml}
让我困惑的是格式散列,它请求某些图像(:jpeg、" image /pjpeg“、:png、:gif)。我们没有在应用程序中注册自定义MIME类型,据我所知,没有相应的Rails默认MIME类型。
所以问题是:是什么样的请求生成这种格式哈希?
发布于 2014-04-12 15:01:12
我也犯了同样的错误。我注意到这是一个搜索引擎的"YandexImage“试图获得自定义格式。在我的控制器和操作上是空的,因为它是一个静态的*.html.erb页面。这是更多的信息。
* DOCUMENT_ROOT : /srv/www/apps/mysite/current/public
* HTTP_ACCEPT : image/jpeg, image/pjpeg, image/png, image/gif
* HTTP_CONNECTION : Keep-Alive
* HTTP_FROM : support@search.yandex.ru
* HTTP_HOST : mysite.com
* HTTP_USER_AGENT : Mozilla/5.0 (compatible; YandexImages/3.0; +http://yandex.com/bots)
* ORIGINAL_FULLPATH : / 解决这一问题的方法有两种:
编辑public/robots.txt以阻止YandexImage。参见http://yandex.com/bots上的更多信息
User-agent: YandexImage
Disallow: /或者将下面的代码放到您的操作中,它将只处理html,否则会引发未找到的页面。
respond_to do |format|
format.html
format.any { raise ActionController::RoutingError.new('Not Found') }
endhttps://stackoverflow.com/questions/18893974
复制相似问题