2012-12-27 69 views
4

我有我的Rails應用程序的自定義主題。這個主題由8個結構複雜的文件夾(子文件夾,大量文件)組成。其中一個文件夾是bootstrap,由css,js和img子文件夾組成。其他一些文件夾和子文件夾也包含css,js和imgages。自定義主題的Rails資產管道

如何使用資產管道預編譯這些文件以及如何從代碼訪問它們?

回答

4

我最近購買了大量HTML5主題和執行的工作得到它進入我的rails項目和使用資產管道。爲了讓它對圖片網址感到滿意,我不得不做一些批量查找/替換。以下是我使用的整體方法:

  1. 將所有提供的「映像」文件和目錄放在 /vendor/assets/images下。
  2. 把所有的供給樣式表的下 /供應商/資產/把所有的提供的JavaScript的下 /供應商的樣式表
  3. /資產/ Javascript角

利用上述方法,所有相對路徑應作爲主題供應商希望他們保持。例如,我的主題供應商將所有圖像都放在'img'目錄下,因此我只複製該目錄,使其成爲/ vendor/assets/images/img/...現在,我們需要獲取我們的應用程序。 CSS和的application.js文件才能正常拉它需要的文件:

  1. 在/app/assets/javascripts/application.js添加要求線條添加所有你的主題供應商說,你需要
  2. 的JavaScript的
  3. 在/app/assets/stylesheets/application.css中添加要求的行以添加所需的所有樣式表

現在棘手的部分取決於您的JavaScript和樣式表是否包含其他項目。對於沒有任何文件,我建議你重新命名他們.erb(添加.erb到文件名),它允許您使用Rails的helper如asset_pathIMAGE_PATH

.i24_arrow-180{ background-image: url(<%= asset_path 'img/icons/packs/fugue/24x24/arrow-180.png' %>); } 

或者,在JavaScript:

'<%= asset_path('js/mylibs/charts/jquery.flot.orderBars') %>': 

一旦你固定任何圖像路徑,你應該準備好與新的主題,將與資產管道工作!

警告:我花了幾個小時與主題調試的資產編制的問題,事實證明這是因爲圖像的一個曾在文件名和SASS編譯器作嘔上一個括號!

+0

你好,比對答案。我做對了嗎,你將不得不做很多手工工作,而且對於這樣的自定義資產結構,導軌設計不是很好? – xaxa

+1

我不得不同意你的看法。事實上,我已經在近一週的時間裏與一個定製主題搏鬥了。它在開發過程中工作正常,但在資產預編譯後出現錯誤。因爲主題(來自Themeforest的芒果)包含如此多的JavaScript庫(其中一個是requirejs),所以它一直對排查問題感到非常生氣。您可能還想查看railsthemes.com他們沒有太多主題,但他們所做的很快並且輕鬆地集成到Rails中。 –

1

對於自舉,我建議使用導軌引導寶石。如果將其餘資源放在app/assets/{javascripts | stylesheets}目錄中,則它們將被打包到一個應用程序中。{js | css}文件是因爲您的清單缺省情況下具有require_tree指令。

對於圖像,只是把他們在app /資產/圖像,他們將是一樣,如果他們在你的公開目錄訪問

+0

嗨,謝謝你的回覆。 但原始目錄沒有命名爲JavaScript和樣式表。是不是所有的交叉引用都搞砸了? – xaxa