2013-01-16 40 views
2

我目前在Ruby on Rails資產管道上遇到了一些麻煩。資產管道 - 麻煩讓我的CSS存活

我使用的是電子商務解決方案(狂歡),並在文件中,有這樣的文件中:

[...]你可以通過使用特殊的 顯著提高性能預編譯任務。

$ bundle exec rake assets:precompile:nondigest 

使用開發將阻止任何改變 資產文件預編譯rake任務被自動包含在重新加載 頁面英寸您必須重新運行預編譯任務以進行更改,以變爲可用的 。

我的問題是執行命令後,我的所有CSS都必須手動重新編譯才能生效。我找不到這個「反向」命令​​。

我試圖刪除公共/資產,然後重新啓動,但沒有任何工作。

在我application.rb中,我有這行的資產:

config.assets.enabled = true 

編輯:我development.rb

Mystore::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

你可以粘貼你的'development.rb'嗎? –

+0

剛剛編輯帖子;) – Erowlin

+0

這是在產品或開發環境?在開發中,我並不認爲你需要預編譯......雖然不確定Spree是通過Rails Engine還是僅僅通過它自己的webapp安裝的? –

回答

0

,F ***以外,中庸之道發現什麼問題:

施普雷在數據庫中存儲的標誌形象的名字。所以,rake tmp:clear不起作用。 該CSS似乎沒問題,立即應用更改。

這裏是迴應: http://osdir.com/ml/spree-user/2012-12/msg00147.html

我不知道如果我要到施普雷報告錯誤,或者如果它不是一個。無論如何,這很奇怪。

謝謝你們所有人!

1

通常你可以運行:

$ bundle exec rake RAILS_ENV=development assets:clean 

這應該清除任何預編譯的資產。這聽起來像你處於開發模式,但如果你在生產,刪除RAILS_ENV=development部分。

+0

完成:它沒有幫助=>刪除公共/資產,但我的更改已貼上一次,然後再次未貼上。 有關信息,用於測試我正在使用圖像。 – Erowlin

+0

我處於開發模式。 – Erowlin

0

希望你使用的是版本控制。輸入「git diff」或等價的名稱,看看究竟哪些文件發生了變化,這可能會導致您的應用程序出現這種新行爲。

+0

已經這樣做了,沒有什麼重要的改變 – Erowlin

0

Erowlin,當您預編譯您的資產時,您對CSS所做的任何更改將會被應用NOT。這是因爲它已經從application.css/application.js中讀取了所有資產都壓縮到這兩個文件中的情況。

因此,如果您想對資產進行任何更改,則無法先預編譯它們。

對於Spree來說,如果您正在處理不需要觸摸CSS/Javascript代碼的代碼,那麼使用您提到的技術的好時機將會是。

+0

這正是我想要的,停止我的應用程序編譯一次。 – Erowlin

1

以防萬一:您是否可以檢查文件,名爲manifest.yml?它應該在您的/assets/目錄中。如果存在,你可以看到裏面有消化的名字。試評它們或刪除它們,我們將看到...

+0

它不存在= / – Erowlin