博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在rails3.1使用assets pipeline with compass
阅读量:6038 次
发布时间:2019-06-20

本文共 1120 字,大约阅读时间需要 3 分钟。

hot3.png

    assets pipeline是rails3.1中引入的重要特性之一,它的作用是让我们工程目录下面凌乱的js,css等文件,有序摆放。例如:

  1. 我们自己维护的、而且只在当前应用中使用的js、css可以放在app/assets目录中
  2. 我们自己维护的、但是会在N个应用中共享的js、css可以放在lib/assets目录中
  3. 我们自己不维护的js、css可以放在vendor/assets目录中

    分门别类的好处是让我们可以在第一时间找到对应的js、css文件,同理可以扩展到其他的格式的文件,例如image。另外例如存在一个文件是app/assets/stylesheets/somecssfile.css ,那么我们就可以通过http://www.example.com/assets/somecssfile.css 这个链接访问到上面那个文件。

    rails怎么识别这些路径呢?原来是在Rails.application.config.asserts.paths这个变量中定义的,我们可以在config/application.rb这个文件中修改,自定义一个assets目录,例如/home/myname/**/*/lib/assets,那么这个目录中的js、css文件同样可以使用 http://www.example.com/assets/stylesheets/anothercssfile.css 这样类似路径访问得到。

    在rails3.1中编写css文件,最好使用sass/scss来做整理,可以让css代码复用能力更强,从而做到DRY。当然,如果你使用了sass/scss,那么进而利用compass这个框架算是不错的选择。在3.1之前,我们原来是这么做的  compass init rails path/to/app ,这个命令会在app下面生成stylesheets目录,把css/sass/scss文本放在里面。但是在3.1中这么,会让我觉得乱的。

    第一种方法,手工将代码移入上面说到3个assets目录其中之一中去,不过看起来没那么优雅,而且得修改配置。

    第二个方法修改config.sass.load_paths,compass中几个stylesheets目录加载进来,让assets pipeline中的sass,scss代码可以执行@import,具体可以参考 这篇文章。

    当然还有第三个办法就是我一开始铺垫的修改config.assets.paths的配置让compass gem中的stylesheets直接成为其加载目录。

转载于:https://my.oschina.net/xorochi/blog/34798

你可能感兴趣的文章
生产管理软件改进生产流程
查看>>
MaxCompute新功能发布
查看>>
3.文件拷贝
查看>>
Kubernetes弹性伸缩全场景解读(五) - 定时伸缩组件发布与开源
查看>>
100. bootstrap 弹出对话框bootbox.confirm
查看>>
wps怎么转图片?
查看>>
多人聊天
查看>>
科略教育—企业管理运营八大基本法
查看>>
I/O多路转接之select
查看>>
IPScan的作用
查看>>
我的友情链接
查看>>
mysql主从复制
查看>>
etc目录下配置文件详解
查看>>
配置 yum 源的两种方法
查看>>
A10 负载均衡模拟器下载安装及license免费激活详细介绍
查看>>
SQL Server数据库的存储过程中定义的临时表,真的有必要显式删除(drop table #tableName)吗?...
查看>>
双向链表的几种实现
查看>>
我的友情链接
查看>>
Ubuntu快捷键
查看>>
RGBA是什么
查看>>