我有一个Rails 4应用,它在整个应用程序中使用app/assets/javascripts
和app/assets/stylesheets
中的资源。但是,我为应用程序的管理部分创建了一个嵌套资源。我希望管理界面与最终用户看到的不同(不同的布局,不同的资产)。
我尝试在application.css文件中更改以下内容:
*= require_tree .
到
*= require_directory
但整个应用似乎仍在使用相同的资源。任何人都可以请教我如何在Rails 4应用程序的不同部分使用不同的资源吗?
答案 0 :(得分:4)
这里的问题不在于您是如何在资产清单中包含文件的,只是您为应用程序的公共和私人/管理部分使用相同的清单。
您应该创建一个名为app/assets/stylesheets/admin.css
的新文件,并在其中包含管理布局所需的资源。也许是这样的:
*= require_tree ./admin
然后更改现有的application.css
不要使用require_tree .
,而是更具体的内容,例如:
*= require_tree ./main
将所有公共CSS文件移动到样式表目录中的该目录中。
最后,您需要为管理页面创建新的布局,或修改应用程序布局,以便样式表和javascript包含的动态基于您正在使用的应用程序的哪个部分。
为简单起见,您可能只想使用管理部分的新布局,称为app/views/layouts/admin.html.erb
,然后更新应用程序页面的所有控制器以使用layout :admin
。
答案 1 :(得分:1)
我知道三种组合
*= require_tree . # for base asset directory
*= require_tree ./path # a specific path
*= require filename # some file