2011-12-08 73 views
2

我有一個設置,我有一個引擎(非名稱空間)for each subdomain。這很有用,因爲每個子域都可以指定自己的自定義路由,控制器,視圖和模型。但我一直無法弄清楚如何讓資產做我想做的事情。理想情況下,如果訪問該子域,則只會爲特定的子域加載JavaScript和樣式表。我不希望一個樣式表定義覆蓋另一個社區中的另一個樣式表定義。Rails 3.1子域特定資產

此外,當使用image_tag時,我希望圖像可以正常訪問。

回答

2

我已經想出了一個解決方案。 JS,CSS和圖像應該全部存儲在引擎的默認位置,例如, app/assets/javascripts/<subdomain>/application.js。然後,在主應用程序的application.html.erb JS和CSS應該包括像這樣:

<%= stylesheet_link_tag "#{community.subdomain}/application" %> 
<%= javascript_include_tag "#{community.subdomain}/application" %> 

至於圖像,只要他們是在發動機的app/assets/images/<subdomain>/,他們會在公共顯示爲/assets/images/<subdomain>/my_image.png。再次,我使用Rails 3.1;我不確定這種行爲對於其他版本的Rails(包括3.0)如何。

+0

剛剛遇到了這個,並且在最新的3.2.11發佈中表現出色。謝謝! – battlemidget