导轨:Can';t在测试环境中通过SCSS@import查找资产

导轨:Can';t在测试环境中通过SCSS@import查找资产,css,ruby-on-rails,sass,asset-pipeline,site-prism,Css,Ruby On Rails,Sass,Asset Pipeline,Site Prism,我的团队正在Rails 4应用程序中使用SitePrism进行功能测试,我们目前正在项目中重新构建CSS资产。其中一个资产文件包含一行@imports from子目录: app/assets/stylesheets/lib/admin.scss.css: @import "base/base-admin"; app/assets/stylesheets/lib/base/base-admin.scss依次包括: @import "shared/reset"; @import

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

app/assets/stylesheets/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)

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

这是一个命名错误。我清单上的后缀是“.scss.css”,而不是“.css.scss”(应该是正确的)

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


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

您在
config/environments/test.rb
中有任何与资产相关的内容吗?没有,我尝试添加了
config.assets_prefix=“/#{Rails.env}/assets”
但没有得到任何有用的结果。此外,当导入行为
@import“app/assets/stylesheets/lib/base/base admin”时,测试通过,但当然,应用程序无法在浏览器中加载它。尝试添加
config.assets.path这是一个命名错误。我清单上的后缀是“.scss.css”,因此资产管道试图以错误的方式@import一个文件(通过css而不是scss)。