热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Rails:使用Sass的@import而不是*=require的缺点

如何解决《Rails:使用Sass的@import而不是*=require的缺点》经验,为你挑选了1个好方法。

我决定使用Sass @import而不是Sprocket *=require.

我在application.scss中有这个:

@import 'normalize';
@import 'font-awesome';
@import 'variables';

这在blog.scss中:

@import 'application';

这样我就可以为不同的控制器设置单独的样式表(使我的代码更有条理).

为了使这项工作,我还添加stylesheet_link_tag params[:controller]到我的布局,然后添加Rails.application.config.assets.precompile += %w( blog.css )到我的/config/initializers/assets.rb文件行,并重新启动服务器.

这种方法有什么缺点吗?将turbolinks是慢?



1> Andrew Hendr..:

如果你有多个Sass文件,Rails Asset Pipeline指南实际上建议使用Sass的@import而不是Sprockets*= require.

以下是Rails Asset Pipeline指南的引用:

"如果你想使用多个Sass文件,你通常应该使用Sass @import规则而不是这些Sprockets指令.当使用Sprockets指令时,Sass文件存在于它们自己的范围内,使变量或mixin仅在它们被定义的文档中可用in.(http://guides.rubyonrails.org/asset_pipeline.html)"

这也推荐在sass-rails gem Github页面(https://github.com/rails/sass-rails)上.这是该页面的引用:

"Sprockets提供了一些放在注释中的指令,名为require,require_tree和require_self.不要在你的SASS/SCSS文件中使用它们.它们非常原始,不适用于Sass文件.而是使用Sass的原生@import sass-rails已经定制的指令,可以与Rails项目的约定集成."

这种方法没有任何明显的缺点,实际上有很多好处(包括但不一定限于):

    主要优点来自SASS @import创建全局命名空间,而Sprockets指令不创建.

    编译将在开发中加速一点,因为每次每个partial @ import都不需要重新编译所有供应商mixin.

    使用@import全局命名空间会创建一个Whorfian效果,团队中的开发人员倾向于定义和重用他们应该的变量(在变量文件中),而不是更具体的文件.例如,如果未在全局变量文件(http://pivotallabs.com/structure-your-sass-files-with-import/)中定义,z索引可能会成为一场噩梦.


我在开发过程中经历了非常慢的加载时间,当我只使用@imports时,特别是如果使用bootstrap-sass和一些选择指南针组件.我仍然在尝试研究这个问题,但是我很高兴等待10秒钟在开发中加载页面.
推荐阅读
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
    本文介绍了使用shell脚本判断IP是否在同一网段、判断IP地址是否在某个范围内、计算IP地址范围、判断网段之间的包含关系的方法和原理。通过对IP和掩码进行与计算,可以判断两个IP是否在同一网段。同时,还提供了一段用于验证IP地址的正则表达式和判断特殊IP地址的方法。 ... [详细]
  • CSSandSass(SCSS)stylerulesIDandclassnamingID和class(类)名总是使用可以反应元素目的和用途的名称,或其他通用名称。代替表象和 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • Firefox火狐浏览器关闭到http://detectportal.firefox.com的流量问题解决办法
    本文介绍了使用Firefox火狐浏览器时出现关闭到http://detectportal.firefox.com的流量问题,并提供了解决办法。问题的本质是因为火狐默认开启了Captive portal技术,当连接需要认证的WiFi时,火狐会跳出认证界面。通过修改about:config中的network.captive-portal-service.en的值为false,可以解决该问题。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • 本文介绍了在Windows系统下安装Python、setuptools、pip和virtualenv的步骤,以及安装过程中需要注意的事项。详细介绍了Python2.7.4和Python3.3.2的安装路径,以及如何使用easy_install安装setuptools。同时提醒用户在安装完setuptools后,需要继续安装pip,并注意不要将Python的目录添加到系统的环境变量中。最后,还介绍了通过下载ez_setup.py来安装setuptools的方法。 ... [详细]
  • 程序员如何选择机械键盘轴体?红轴和茶轴对比
    本文介绍了程序员如何选择机械键盘轴体,特别是红轴和茶轴的对比。同时还介绍了U盘安装Linux镜像的步骤,以及在Linux系统中安装软件的命令行操作。此外,还介绍了nodejs和npm的安装方法,以及在VSCode中安装和配置常用插件的方法。最后,还介绍了如何在GitHub上配置SSH密钥和git的基本配置。 ... [详细]
  • TPL实现Task.WhileAll扩展方法
    文章翻译整理自NikolaMalovic两篇博文:Task.WhileAllAwaitabletaskprogressreporting当Task.WhenAll遇见 ... [详细]
  • Spring 源码阅读 74:事务管理的原理BeanFactoryTransactionAttributeSourceAdvisor 分析
    本文通过对BeanFactoryTransactionAttributeSourceAdvisor类的分析,了解了Spring是如何通过AOP来完成事务的管理的&#x ... [详细]
author-avatar
鱼儿7秒的记忆_710
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有