2012-05-25 14 views
1

我在部署到生產之前預先編譯資產。生產模式運行良好,但application.js和application.css在開發中是多餘的。我嘗試rake assets:clean並刪除所有的公共資產仍然沒有工作。使用Rail開發預編譯資源之後的冗餘application.js和css 3.2.3

在發展中的視圖

冗餘applicaiton.css和application.js中

<link href="/assets/application.css?body=1" media="screen" rel="stylesheet" type="text/css" /> 
<link href="/assets/css/custom-theme/jquery-ui-custom-lastest.css?body=1" media="screen" rel="stylesheet" type="text/css" /> 
<link href="/assets/animate.css?body=1" media="screen" rel="stylesheet" type="text/css" /> 
<link href="/assets/jquery_loadmask/jquery_loadmask.css?body=1" media="screen" rel="stylesheet" type="text/css" /> 
... 
<script src="/assets/tags.js?body=1" type="text/javascript"></script> 
<script src="/assets/wedapp.js?body=1" type="text/javascript"></script> 
<script src="/assets/works.js?body=1" type="text/javascript"></script> 
<script src="/assets/application.js?body=1" type="text/javascript"></script> 

development.rb

config.assets.compress = false 
config.assets.debug = true 

production.rb現在

config.serve_static_assets = false 
config.assets.compress = true 
config.assets.compile = true 
config.assets.initialize_on_precompile = false 
config.assets.digest = true 
config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for nginx 

,我需要設定fals e在development.rb的config.assets.debug中,但在預編譯之前我無法調試資源。這真的讓我感到困擾。

有什麼建議嗎?謝謝。

解決方案

試圖改變的application.js文件做任何事,我刪除一個空行和rake assets:clean RAILS_ENV=development,現在工作得很好。

+0

你是什麼意思的application.js/CSS的意思是多餘的? –

+0

要@FrederickCheung,application.js和application.css不應該在'config.assets.debug = true'開發中加載。 – chiayi

+1

不要以爲這是真的,因爲它是合法的(但不鼓勵)在這些文件中有js/CSS,而不是純粹的清單文件。 –

回答

0

如果您在本地進行預編譯,並且希望保留所有正常的開發模式功能,那麼您可以調整您的設置以允許這兩者兼容。

在development.rb地方下面的行:

config.assets.prefix = "/dev-assets" 

該過乘坐任何設置在application.rb中(通常是 「/資產」)。

你還需要這application.rb中:

config.assets.initialize_on_precompile = false 

您可以然後提交你的編譯資產,以源頭控制和部署它們,而不必擔心清潔起來之後。

(參見話題我full blog post

+0

hi @Richard Hulse,我按照你的說法設置了配置,但頁面仍然從/ assets/...到/ dev-assets/... – chiayi

相關問題