【问题标题】:Rails / Sass: Import file from the vendor folderRails / Sass:从供应商文件夹导入文件
【发布时间】:2014-09-22 11:01:48
【问题描述】:

我有一个样式表app/assets/website/base.scss,开头为:

@import "bootstrap-select.min.css";

bootstrap-select.min.css 文件存在于vendor/stylesheets/ 文件夹中。当我尝试在生产环境中访问它时,我得到一个 404:

“网络错误:404 未找到 - http://mysite.herokuapp.com/assets/bootstrap-select.min.css

(不过,它在我的开发平台上运行良好。)

这是我迄今为止尝试过的:

  1. 尝试使用@import asset-path("bootstrap-select.min.css")。出现语法错误(显然 asset-path 不适用于 imports)。

  2. 尝试将config.assets.precompile += %w(bootstrap-select.min.css) 添加到config/environments/production.rb

知道为什么会发生这种情况吗?

Rails 4.0.4 / Ruby 2.1.2

【问题讨论】:

  • css 文件中的导入语句?是 css 还是 .scss?
  • @Mandeep 这是一个 .scss(文件名在第一行中提到)
  • 在开发或生产中,您不使用 scss 文件。为什么要在生产环境中编译 scss。此外,您的 html 应始终指向已编译的 css 文件。那么你最终的 css 文件在哪里呢?
  • 你知道 Sass 不能导入(编译)CSS 文件,对吧? Rails 是否具有允许您这样做的功能?
  • @cimmanon 哦,其实我不是。所以这是有道理的。那么答案是链轮?

标签: ruby-on-rails sass


【解决方案1】:

最终将其从 bootstrap-select.min.css 更改为 --> bootstrap-select.min.scss ..

成功了!

Sass 实际上将 .scss 文件的 内容 放置到位 - 对于 .css 文件,它只是链接到带有 @import 的文件,这就是它不起作用的原因(谢谢@cimmanon!)

【讨论】:

  • 如果 Sass 检测到以下情况之一:在 URL 以 .css 结尾的位置导入,在 URL 以 http:// 或 https:// 开头的位置导入,在 URL 写入为 url 的位置导入( ),具有媒体查询的导入。它会将导入标识为纯 CSS 命令。 developer.mozilla.org/en-US/docs/Web/CSS/@import
【解决方案2】:

实际上,您可以从@987654321 中删除 .css 后缀@ Sass 只希望您提供资产的名称,并且足够聪明,可以查看所有可能的资产位置并导入它可以导入的任何内容(因此名称应该是格式-独立)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-15
    • 2016-04-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多