Rails 3.1资产管道不';t获取对@import';d表
我使用Rails 3.1资产管道不';t获取对@import';d表,import,sass,ruby-on-rails-3.1,asset-pipeline,Import,Sass,Ruby On Rails 3.1,Asset Pipeline,我使用@import'd部分工作表来组织我的css/sass: /app /assets /stylesheets _constants.sass _layout.sass ... app.css.sass app.css.sass: @import _constants.sass // basic styles @import _layout.sass @import ... app.css.sass有一个@imp
@import
'd部分工作表来组织我的css/sass:
/app
/assets
/stylesheets
_constants.sass
_layout.sass
...
app.css.sass
app.css.sass:
@import _constants.sass
// basic styles
@import _layout.sass
@import ...
app.css.sass
有一个@import
规则用于\u layout.sass
,它允许我在原始sass文件中共享混音和变量,然后再将它们编译成app.css
问题是Rails无法识别对@import
'd部分(\u layout.sass
)的更改,并且在我对实际的app.css.sass
文件本身进行更改之前不会重新生成app.css
。这大大减慢了我的工作流程,意味着我必须从app.css.sass
中添加/删除空行才能看到更改。在3.0中从未出现过此问题
有没有一种方法可以强制sass资产在开发过程中根据每个服务器请求重新生成?使用
depend\u on
指令可以满足您的要求。这使给定文件成为基础文件的依赖项(因此,当依赖项更改时,基础文件将重新生成),但不将其包含在捆绑包中
例如:
/*
*= depend_on _layout.sass
*= depend_on _constants.sass
*/
@import _layout.sass
@import _constants.sass
请参阅此内容以及(特别是指令部分)。纳米导师的回答引导我找到了解决方案(谢谢!),但是以间接的方式。当我终于找到时间回到这里并查找引用的帖子时,它已经被更新为不再需要修复
果不其然,这个bug似乎已经在Rails 3.1.0稳定版和sass Rails 3.1.0版中修复。这么好!我已经确认,更新gems确实可以让一切恢复正常运行,并在几个应用程序中进行了测试。你已经解决了这个问题吗?我一直在寻找,但仍然找不到解决方案。我还没有找到解决方案。关于进一步的信息,我使用的是SASS-gem,但不是SASS-RAILS-gem。有人建议也尝试添加SASS-RAILS gem,但这会破坏通过@import链接使用的所有常量。@John您应该使用最新的RC RAILS再试一次。在过去几年中,资产管道有了一些改进。我在应用程序中遇到了与使用类似结构完全相同的问题。我也更新到了rc5,但是没有解决问题。对不起,我没有注意到这些评论。是的,在上个月的某个时候,Rails 3.1.0稳定版或sass Rails解决了这个问题。我现在可以更新任何文件并立即看到更改,常量工作得非常好。我刚刚找到时间来测试这个,现在它在两个不同的应用程序中运行得非常好。值得注意的是,sass可以在不使用sass rails的情况下使用rails,只需包括haml。。。但是如果没有sass-rails,这个问题会很棘手,我使用的是rails 4.1和更少的rails 2.7.1,我有相同的bug(和相同的修复程序)。这仍然相关吗@约翰莱因的建议不适用。@AdamSpiers这不应该是相关的,因为这个bug已经在一段时间前修复了。然而,答案一直在被投票,所以它显然帮助了一些人。@davidmani我认为你是对的-我后来发现它没有为我收集更改,因为一些预编译的资产正在阻碍…:-/我使用的是rails 4.0、sass rails 5.0.1,出于某种原因,我出现了错误,这对我有所帮助。是的,我使用的是rails 4.1和更少的rails 2.7.1,我也有相同的错误(和相同的修复)