诉Rails 2.3.8
我希望实现的是动态修改Rails中的出站链接,以便使用片段缓存来缓存更改。你会怎么做呢?
注意:这次我故意不在此处包含我自己的想法和源代码,因为我希望听到没有偏见的建议。
感谢。
答案 0 :(得分:0)
以下是解决方案:
在ActionController :: Caching :: Fragments.fragment_for中,更改以下行:
pos = buffer.length
block.call
write_fragment(name, buffer[pos..-1], options)
到此:
pos = buffer.length
fragment = Nokogiri::HTML::fragment(block.call)
fragment.css('a').each do |a|
unless a['href'].nil?
a.set_attribute('rel', 'nofollow') unless (a['href'].starts_with?('/') || a['href'].starts_with?("http://#{ENV['BASE_URL']}"))
end
end
buffer[pos..-1] = fragment.to_html
write_fragment(name, buffer[pos..-1], options)
请注意: