我有一个设置,我有一个引擎(非命名空间)for each subdomain。这很有效,因为每个子域都能够指定自己的自定义路由,控制器,视图和模型。但我无法弄清楚如何让资产去做我想要的事情。理想情况下,只有在访问该子域时,才会为特定子域加载javascript和样式表。我不希望一个样式表定义在另一个社区中覆盖另一个样式表定义。
此外,我希望在使用image_tag
时可以正常访问图片。
答案 0 :(得分: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。