在我的咖啡脚本文件中,我有这个:
$('#map_of_users').html("<iframe src='/map/" + $(this).data('user_id') + "></iframe>"
Bots正在抓取该文件并认为这是一个要检出的网址,所以我在我的日志中收到了一个类似于此的路由错误
No route matches [GET] "/map/%22+$(this).data(%22user_id%22)"
我确实希望跟踪路由错误,因此我无法忽略所有这些错误,但是这些无聊的路由错误会导致大量不必要的时间。
也许一个快速的解决方案是将所有coffeescript文件添加到robots.txt文件或app / assets / javascripts文件中的所有内容。推荐什么?
注意:我还发布了一个不正确的解决方案,试图在routes.rb文件中修复此问题,并且我想知道它为什么不起作用。
答案 0 :(得分:0)
注意:此解决方案无效。我发布了它,以听取有关它为什么不起作用的反馈。
如果你把它放在routes.rb ...
中match '/map/%22+$(this).data(%22user_id%22)', :to => 'shared#unauthorized', via: [:get, :post]
转到http://localhost:3000/map/%22+ $(this).data(%22user_id%22)仍会产生此路由错误:
No route matches [GET] "/map/%22+$(this).data(%22user_id%22)"
我猜测路由器没有像浏览器那样读取%22(&#34;)。有没有办法在路由器中进行补偿?
如果我跑#34;耙路线&#34;在控制台中,它显示正在读取路径:
GET|POST /map/%2522+$(this).data(%2522user_id%2522)(.:format)
通过将%转换为ASCII表示%25,Rails可能是双重编码。可以预防吗?