매일 레일 스 의 좋 은 약 을 만 드 는 browserfilters

레일 스 의 actsas_taggable 플러그 인 이 앞 에 있 습 니 다.
4. 567915. 한 글 에서 이미 말 했다.
오늘 브 라 우 저 보 러 왔어요filers 플러그 인, 세 개의 필터 집합 입 니 다:
1, UnicodeContentType, charset 를 "text / html; charset = utf - 8" 로 설정
2, Safari UnicodeFix, Safari 브 라 우 저의 Ajax 호출 유 니 코드 문제 해결
3, LinkPrefetchingBlock, Google Web Accelerator 또는 다른 것들 의 prefetch 를 차단 하고 403 Forbidden 으로 돌아 가기
저 희 는 ApplicationController 에서...
include BrowserFilters 또는
include UnicodeContentType, LinkPrefetchingBlock
소스 보 여 주세요.
lib/browser_filters.rb:

module BrowserFilters
  def self.included(controller)
    controller.send(:include, LinkPrefetchingBlock, SafariUnicodeFix, UnicodeContentType)
  end
end

BrowserFilters 모듈 은 include 자체 의 contrller 에 구체 적 인 세 개의 filter 를 알려 줍 니 다.
lib/link_prefetching_block.rb:

module LinkPrefetchingBlock
  def self.included(controller)
    controller.before_filter(:link_prefetching_block)
  end

  private
    def link_prefetching_block
      if request.env["HTTP_X_MOZ"] == "prefetch"
        render :nothing => true, :status => "403 Forbidden"
        return false
      end
    end
end

LinkPrefetchingBlock 모듈 은 include 자체 의 controller 에 link 를 추가 합 니 다.prefetching_block 이거 beforefilter
link_prefetching_block 판단 GWA 등의 prefetch 는 403 오 류 를 되 돌려 줍 니 다.
lib/safari_unicode_fix.rb:

module SafariUnicodeFix
  def self.included(controller)
    controller.after_filter(:fix_unicode_for_safari)
  end

  private
    def fix_unicode_for_safari
      if headers["Content-Type"] == "text/html; charset=utf-8" && 
          request.env['HTTP_USER_AGENT'] &&
          request.env['HTTP_USER_AGENT'].include?('AppleWebKit') && 
          String === response.body &&
          !response.body.blank?
        response.body = response.body.to_s.gsub(/([^\x00-\xa0])/u) { |s| "&#x%x;" % $1.unpack('U')[0] rescue $1 }
      end
    end
end

Safari UnicodeFix 모듈 은 include 자체 의 contrller 에 fix 를 추가 합 니 다.unicode_for_safari 이 afterfilter
lib/unicode_content_type.rb

module UnicodeContentType
  def self.included(controller)
    controller.after_filter(:set_content_type)
  end

  private
    def set_content_type
      headers["Content-Type"] ||= "text/html; charset=utf-8"
    end
end

UnicodeContentType 모듈 은 include 자체 의 controller 에 set 를 추가 합 니 다.content_type this afterfilter

좋은 웹페이지 즐겨찾기