Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 4 由于activeadmin,我的css文件被覆盖_Ruby On Rails 4_Activeadmin - Fatal编程技术网

Ruby on rails 4 由于activeadmin,我的css文件被覆盖

Ruby on rails 4 由于activeadmin,我的css文件被覆盖,ruby-on-rails-4,activeadmin,Ruby On Rails 4,Activeadmin,首先,我创建了一个active_admin css文件,名为app/assets/stylesheets/active_admin.css.scss /* active_admin.css.scss */ @import "active_admin/mixins"; @import "active_admin/base"; /* application.css.scss*/ @import "active_admin.css.scss" 所以我的很多css都被覆盖了,我遵循了的说明,但仍然不

首先,我创建了一个active_admin css文件,名为
app/assets/stylesheets/active_admin.css.scss

/* active_admin.css.scss */
@import "active_admin/mixins";
@import "active_admin/base";

/* application.css.scss*/
@import "active_admin.css.scss"
所以我的很多css都被覆盖了,我遵循了的说明,但仍然不起作用。 我将文件位置从
app/assets/stylesheets/active_admin.css.scss
更改为
vendor/assets/stylesheets/active_admin.css.scss
但仍然存在问题


那么,如何才能仅在需要时加载activeadmin css文件呢?

要让activeadmin发挥出色,请不要将其包含在application.css中,即:删除

require_tree .
并要求每个文件分别放在app/assets/stylesheet中 但是不要把active_admin.css放在

在config/production.rb上

config.assets.precompile += ['active_admin.css']

从app/assets/stylehseets/application.css.sass中删除此行

*= require_tree ../../../vendor/assets/stylesheets/

根据seanlinsley对所选答案和nathan答案的评论,将active_admin.css.scs移至供应商/资产/样式表/

, 在我看来,“最干净”的方法确实是将
活动的\u admin.css.scss
app/assets/stylesheets/
移动到
vendor/assets/stylesheets/

无需任何其他(配置)修改:“主”应用程序的样式恢复正常,AA显示也正常

(我不想手动包含我的每个资源,而不是require_tree…!)

这就是AA进入的方式:。

对我有效的方法(Rails 5)是在我的app/assets/stylesheets/application.css中的
*=require\u self
行之后添加以下行:

*= stub "active_admin"

这是解决这个问题的链接。我重新发布了一个我发现非常有用的现有答案,因为它也解决了js问题。又不是我的答案

arif362于2017年12月13日发表评论

我面临同样的问题,我解决了以下问题:

首先,您必须在供应商目录中创建一个名为assets的目录

然后在vendor文件夹的assets目录中,您必须创建两个目录(i)样式表,第二个目录是(ii)javascripts

之后,您必须将活动的_admin.scss文件从
资产/样式表
移动到
供应商/资产/样式表
,将
活动的_admin.js.coffee
文件从
资产/javascripts
移动到
供应商/资产/javascripts


最后,重新启动rails服务器,然后重新加载应用程序。希望这对您有用。

此行将使活动管理css可用于管理部分-->config.assets.precompile+=['active\u admin.css']您必须在application.css中列出/放置除active\u admin.css之外的所有css名称,并删除-->require\u treeTwo things:1。没有必要将active_admin.css添加到预编译列表中;AA已经这样做了。2.有一个开放的票来处理这里描述的问题:谢谢。这是Rails 4.1的最佳解决方案。最简单的解决方案总是最好的:-)我很想知道更多关于它是如何工作的?将更多地调查供应商资产以及它们是如何运作的compiled@Richlewis我对您的发现很感兴趣:据我所知,供应商资产传统上是由gems“安装”的,因此我的“解决方案”更像是一种黑客行为(但在我看来仍然是“最干净的”)。如果我错了,请随时发表评论…)仅供记录,此解决方案不适用于Rails 2.2