2012-02-11 45 views
5

我創建一個新的rails 3.2項目,一切都加載罰款,除了最後修改我對CSS文件。rails 3.2和修改的css文件不反映,直到資產:預編譯

如果我對這個文件做app/assets/stylesheets/application.css改變什麼,我看不到瀏覽器上的變化,直到我在控制檯中運行以下命令:

bundle exec rake assets:precompile RAILS_ENV=development

config/environment/development.rb文件。

Sample::Application.configure do 
    # Settings specified here will take precedence over those in config/application.rb 

    # In the development environment your application's code is reloaded on 
    # every request. This slows down response time but is perfect for development 
    # since you don't have to restart the web server when you make code changes. 
    config.cache_classes = false 

    # Log error messages when you accidentally call methods on nil. 
    config.whiny_nils = true 

    # Show full error reports and disable caching 
    config.consider_all_requests_local  = true 
    config.action_controller.perform_caching = false 

    # Don't care if the mailer can't send 
    config.action_mailer.raise_delivery_errors = false 

    # Print deprecation notices to the Rails logger 
    config.active_support.deprecation = :log 

    # Only use best-standards-support built into browsers 
    config.action_dispatch.best_standards_support = :builtin 

    # Raise exception on mass assignment protection for Active Record models 
    config.active_record.mass_assignment_sanitizer = :strict 

    # Log the query plan for queries taking more than this (works 
    # with SQLite, MySQL, and PostgreSQL) 
    config.active_record.auto_explain_threshold_in_seconds = 0.5 

    # Do not compress assets 
    config.assets.compress = false 

    # Expands the lines which load the assets 
    config.assets.debug = true 
end 

任何幫助?

+0

你是否在開發模式或生產環境中啓動服務器?你有時候用同一個端口進行開發,有時用於生產?你以前是否做過這些工作,以預先編譯資產?我注意到了類似的行爲,現在有兩個回購,一個用於開發,一個用於生產,以避免這種情況。 – mliebelt 2012-02-11 18:49:08

+0

@mliebelt只能在開發模式下工作 – 2012-02-11 18:55:27

+0

如果您停止並重新啓動服務器以查看更改,這有幫助嗎?從來沒有這種效果......你可以添加與資產相關的'config/environments/development.rb'的配置嗎? – mliebelt 2012-02-11 21:30:24

回答

15

問題是我編譯了資產,所以導軌服務於這些文件的已編譯版本。

在這種情況下,您只需刪除已生成的文件,如application.cssapplication.css.gz,然後重新開始工作。

希望它可以幫助別人。

+0

我注意到了這一點,現在已經將開發和生產分開了:沒有預編譯文件的開發,使用'assets:precompiled'生產。我認爲這是一個錯誤,看到我的問題http://stackoverflow.com/questions/9140447/best-deployment-strategy-for-local-used-application-in-rails-3-1-on-windows-7 – mliebelt 2012-02-12 18:00:15

1

運行包exec rake assets:clean解決了這個問題。此外,如果您想手動刪除這些文件,它們將出現在資產內的應用程序公用文件夾中。

+0

感謝分享這一點。謝謝! :) – 2014-05-08 13:44:13

1

這是一種古老的線程,但我發現有時rake assets:clean不會在Rails 4.2.1中處理它。有時,你需要使用一個更強大的動詞,如clobber:rake assets:clobber