Redmineで静的コンテンツを別サーバから配信する
Redmineを実行するサーバとは別のサーバからpublicディレクトリ以下の画像・CSS・JavaScript等のファイルを配信したい場合、例えばRedmine自体は海外のサーバで実行し、レスポンスタイムを短縮するために静的ファイルだけは日本国内のサーバから配信したいときなどは、Redmineのconfig/environment.rbに数行の設定を追加すれば簡単に実現できます。
設定方法
例えばRedmineのpublicディレクトリ以下にある静的ファイルを www.example.jp/redmine-assets/ から配信するようにしたい場合は、Redmineのインストールディレクトリのcofnig/environment.rbに以下のような設定を追加します。
ActionController::Base.asset_host = Proc.new { |source|
  unless source =~ /.htc\?\d+$/
    "www.example.jp/redmine-assets" 
  end
}
上記の例では、拡張子".htc"のファイルだけはRedmineを実行しているサーバから配信するようにしています。このファイルは、Internet Explorerでアクセスしたときだけ読み込まれるHTML Componentsと呼ばれる形式のファイルです。Redmineと別ドメインにあるHTML Componentsにアクセスしようとすると下の画像のようなエラー(“Access is denied”)が発生するため、このファイル以外を別サーバから配信するようにしています。

参考
- Railsで、簡単に静的コンテンツのみを別サーバから配信する方法 (RX-7乗りの適当な日々)
 - Module: ActionView::Helpers::AssetTagHelper (Ruby on Rails APIリファレンス)
 
作成: 2010-05-17 23:30  •  分類: インストール・設定
          
    
          
  
        
              
              
              
              
              
              
              
            
            
            