2

我的团队正在使用 SitePrism 在 Rails 4 应用程序中进行功能测试,我们目前正在重组项目中的 CSS 资产。其中一个资产文件包括从子目录@imports 的一行:

应用程序/资产/样式表/lib/admin.scss.css:

   @import "base/base-admin";

和 app/assets/stylesheets/lib/base/base-admin.scss 依次包括:

   @import "shared/reset";
   @import "shared/colors";
   @import "shared/breakpoints";
   @import "shared/grids";

这一切在浏览器的开发中都可以正常工作(我从请求中没有收到任何错误lib/admin.css,并且我看到 CSS 规则已正确应用于页面)。

但是当我运行我们的功能测试时,我得到

Failure/Error: @page.load
ActionView::Template::Error:
  File to import not found or unreadable: base/base-admin.
  Load paths:
    /Users/duncanmalashock/ruby_projects/platform
    /Users/duncanmalashock/ruby_projects/platform/.bundle/gems/ruby/2.2.0/gems/bootstrap-sass-3.3.4.1/assets/stylesheets
 (in /Users/duncanmalashock/ruby_projects/platform/app/assets/stylesheets/lib/admin.scss.css)

但是,在测试环境中没有其他资产被破坏。为什么找不到这些?

4

1 回答 1

0

结果证明这是一个命名错误。我的清单上的后缀是“.scss.css”,而不是“.css.scss”(本来是正确的)。

资产管道从最后一个后缀开始,并尝试运行与之匹配的进程,然后以下一个后缀重复。

因此,管道试图以错误的方式 @import 文件(CSS 中有一个 @import 指令,而 SCSS 中的行为也不同),这导致了意外行为。

于 2015-10-30T14:28:52.587 回答