在轨道上的红宝石scss的目的

时间:2017-04-11 12:39:53

标签: css ruby-on-rails ruby

我是铁轨上的红宝石新手。我可以知道这些js / scss的目的是什么?每当我创建一个新的控制器时,它也会创建一个.scss文件。这应该放在我的js / css中吗?

我试图在home.scss上放置一些图像背景并尝试在我的视图中将其显示到我的div类但它没有显示

注意:我把它放在assets / images /

代码

let (<$>) f x = List.map f x

查看

.image_bg{
    background-image: image-url('a.jpg')
}

问题:如何显示图像背景?

3 个答案:

答案 0 :(得分:1)

您可以在这些文件中添加与模型相关的CSS和JavaScript

您还需要在application.cssapplication.js

中要求它们
/*   
 *= require css_file_name
 */

//= require js_file_name

如果您不希望rails创建JavaScript和CSS文件以及每个新控制器或脚手架,请在application.rb中添加它。

config.generators do |g|
  g.assets false      # js files
  g.stylesheets false # scss/sass files
end

答案 1 :(得分:1)

  

我是铁轨上的红宝石新手。我可以知道这些的目的是什么   JS / SCSS?每当我创建一个新控制器时,它也会创建一个.scss   文件。这是我应该把我的js / css放在哪里吗?

默认情况下,Rails会创建一个css / js文件,以便您按资源组织代码。

如果您查看application.cssapplication.js,请注意评论专线*= require_tree .。此Sprockets指令告诉Rails资产管道在编译application.css/js文件时包含同一目录及其子目录中的任何文件。

您的代码无效的原因是您已将其放在错误的文件夹中。 CSS应放在/app/assets/stylesheets中。 /app/assets/images文件夹用于为网站设置样式的实际图像。

您可以在运行生成器时使用标志禁用资产生成(如果您愿意):

rails g controller foo --skip-assets

或永久修改config/application.rb

config.generators do |g|
  g.stylesheets false
  g.javascripts false
  # or 
  g.assets false # disables both JS and stylesheets
end

加。

如果您打算使用SASS,则应将application.css重命名为application.scss并删除链轮指令:

 *
 *= require_tree .
 *= require_self
 */

而是使用@import "home"告诉SASS编译器包含该文件。见https://github.com/rails/sass-rails

答案 2 :(得分:-1)

您必须将这些文件包含在application.scss / application.js文件中。 使用:

@import "home"

这些文件的目的是组织良好的代码库。您可以根据控制器组织资产。