各位怎麼管理 css 和 javascript assets
就依照 RESTful 的設計,例如一個 Post resource 就有 new、edit、show 和 index 四個 page,如果我對於這四個頁面都有他們各自的 css 和 script,我現在是都寫在 app/assets/javascripts/posts.js.coffee
和 app/assets/stylesheets/posts.css.scss
裡面。
但這樣進入各個 page 常會載入用不到的東西(例如進入 show,會載入 posts.js.coffee
和 posts.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 個檔案是好方法嗎?
除非過肥,否則不需提早優化...
全放在一起,檔案仍很小,況且client也只會載入一次
我一开始也比较在意这个问题,但后来意识到assets pipeline就是要把所有要用到的东西集中起来,慢慢也就习惯了。
同一個問題我貼在 Ruby China:http://ruby-china.org/topics/5324
各位怎麼看 Camel 的方法?我覺得有吸引到我
#4樓 @tonytonyjan 看项目规模吧,除非项目的 assets 很大,或者你某几个页面里面用到的assets有冲突(例如部分页面是用bootstrap来布局但也有部分是用960gs之类),这样就可以考虑 Camel 的方法,否则你在管理 assets 就看怎么样分类能让你最快debug,反正最后都会编译成一个文件。