2a01ae9942939ee2b3954a6727d2bb92

各位怎麼管理 css 和 javascript assets

2012-09-02 12:41:49 +0800tonytonyjanRuby on Rails 節點 中發起
最後由 zernel2012-09-06 00:16:09 +0800回應 , 397次閱讀

就依照 RESTful 的設計,例如一個 Post resource 就有 new、edit、show 和 index 四個 page,如果我對於這四個頁面都有他們各自的 css 和 script,我現在是都寫在 app/assets/javascripts/posts.js.coffeeapp/assets/stylesheets/posts.css.scss 裡面。

但這樣進入各個 page 常會載入用不到的東西(例如進入 show,會載入 posts.js.coffeeposts.css.scss 但只用得到裡面的 1/4 的程式碼和 style)。

但若把 javascript 和 css 又各分成 4 個,這樣會變成 8 個檔案。在進行 assets precompile 之前,我要在 config/environments/production.rb 先定義額外的 assets:

config.assets.precompile += %w(posts_new.css posts_edit.css posts_show.css posts_index.css)

這樣會變得很冗長,所以想來此請教前輩們該如何管理這些檔案比較恰當?

把全網站的 javascript 和 css 檔案 precompile 成 1 個檔案是好方法嗎?

截至 2012-09-06 00:16:09 +0800,共收到 5 條回應
19e786a2a74377ff6e052d87fd8d1fa8
xdite 1樓, 於2012-09-03 01:34:36 +0800回應

除非過肥,否則不需提早優化...

Fd779852eb8e519999f8b35c47777608
chiayi 2樓, 於2012-09-03 09:31:27 +0800回應

全放在一起,檔案仍很小,況且client也只會載入一次

1094e3f0b7f5e6eb63a149b0551d6228
hpyhacking 3樓, 於2012-09-03 14:07:34 +0800回應

我一开始也比较在意这个问题,但后来意识到assets pipeline就是要把所有要用到的东西集中起来,慢慢也就习惯了。

2a01ae9942939ee2b3954a6727d2bb92
tonytonyjan 4樓, 於2012-09-03 19:58:10 +0800回應

同一個問題我貼在 Ruby China:http://ruby-china.org/topics/5324

各位怎麼看 Camel 的方法?我覺得有吸引到我

146e61322cc18f833dddf394ba99e478
zernel 5樓, 於2012-09-06 00:16:09 +0800回應

#4樓 @tonytonyjan 看项目规模吧,除非项目的 assets 很大,或者你某几个页面里面用到的assets有冲突(例如部分页面是用bootstrap来布局但也有部分是用960gs之类),这样就可以考虑 Camel 的方法,否则你在管理 assets 就看怎么样分类能让你最快debug,反正最后都会编译成一个文件。

需要 登入 後方可回應,如果你還沒有帳號按這裡 註冊