2012-12-29 23 views
0

我正在嘗試配置Nginx與Rails 3資產管道一起使用。配置Nginx與Rails 3資產管道一起工作

http { 
    passenger_root /home/ubuntu/.rvm/gems/ruby-1.9.3-p327/gems/passenger-3.0.18; 
    passenger_ruby /home/ubuntu/.rvm/wrappers/ruby-1.9.3-p327/ruby; 

    include  mime.types; 
    default_type application/octet-stream; 
    sendfile  on; 

    #keepalive_timeout 0; 
    keepalive_timeout 65; 

    server { 
     listen  80; 
     server_name myprojecthost.com *.myprojecthost.com; 
     #charset koi8-r; 

     #access_log logs/host.access.log main; 
     root /var/www/<my proj>/current/public; 

     location/{ 
      passenger_enabled on; 
      rails_env staging; 
       root /var/www/<my proj>/current/public; 
     } 

     location ~ ^/(assets)/{ 
       root /var/www/<my proj>/current/public; 
       expires max; 
       add_header Cache-Control public; 
     } 
     } 
    } 

Rails的配置如下:

MyProj::Application.configure do 
    # Code is not reloaded between requests 
    config.cache_classes = true 

    # Full error reports are disabled and caching is turned on 
    config.consider_all_requests_local  = false 
    config.action_controller.perform_caching = true 

    # Disable Rails's static asset server (Apache or nginx will already do this) 
    config.serve_static_assets = true 

    # Compress JavaScripts and CSS 
    config.assets.compress = true 

    # Don't fallback to assets pipeline if a precompiled asset is missed 
    config.assets.compile = true 

    # Generate digests for assets URLs 
    config.assets.digest = true 

    # Defaults to Rails.root.join("public/assets") 
    # config.assets.manifest = YOUR_PATH 

    # Specifies the header that your server uses for sending files 
    # config.action_dispatch.x_sendfile_header = "X-Sendfile" # for apache 
    config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for nginx 

    # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. 
    # config.force_ssl = true 

    # See everything in the log (default is :info) 
    config.log_level = :debug 

    # Use a different logger for distributed setups 
    # config.logger = SyslogLogger.new 

    # Enable locale fallbacks for I18n (makes lookups for any locale fall back to 
    # the I18n.default_locale when a translation can not be found) 
    config.i18n.fallbacks = true 

    # Send deprecation notices to registered listeners 
    config.active_support.deprecation = :notify 
end 

我的CSS文件返回404錯誤。 如果我刪除塊「位置〜^ /(資產)/ {」它運作良好,但速度非常緩慢。

有人可以幫助我嗎?

回答

0

您是否預編譯了您的資產? rake assets:cleanrake assets:precompile

+0

是的,他們都在那裏。如果我去.com/assets/home-6993afd6c1687aa045152d0420e1cd9f.css我得到一個404錯誤,但是如果我去/var/www/myserver/current/public/assets/home-6993afd6c1687aa045152d0420e1cd9f.css文件有 – Tony

+0

I '已經使用了這個[nginx配置](https://gist.github.com/3837677)並且它工作正常,但是我找不到與你發佈的不一樣的東西。 – albertogg