在应用程序和源代码管理中存储SASS生成的CSS的最佳方法是什么?

的Ruby-on-轨道 CSS

Pro老丝

2020-03-24

如果您在Rails应用程序中使用HAML和SASS,那么您在public / stylesheet / *。sass中定义的任何模板都将被编译为* .css样式表。从代码中,您可以使用stylesheet_link_tag按名称提取资产,而不必担心扩展名。

许多人不喜欢将生成的代码或已编译的代码存储在版本控制中,这也足以说明public /目录不应包含您不发送给浏览器的元素。

在Rails项目中布置SASS资源时应遵循的最佳模式是什么?

第3181篇《在应用程序和源代码管理中存储SASS生成的CSS的最佳方法是什么?》来自Winter(https://github.com/aiyld/aiyld.github.io)的站点

4个回答
泡芙Stafan 2020.03.24

老实说,我喜欢在版本控制中使用已编译的SASS样式表。它们很小,只有在您的.sass文件更改时才会更改,并且将它们与应用程序的其余部分一起部署意味着SASS编译器永远不需要在生产环境中启动。

另一个优点(尽管很小)是,如果您不使用页面缓存,则Rails进程不需要对public_html目录具有写权限因此,利用服务器进行恶意攻击的途径少了。

null 2020.03.24

如果可以管理它,那么当我为项目选择HAML / SASS时,我希望将所有样式存储在SASS模板中,然后删除application.css和scaffold.css。然后我将SASS放在public / stylesheets / sass中,并将/public/stylesheets/*.css添加到.gitignore中。

如果我必须结合使用SASS和基于CSS的资产,则要复杂一些。解决此问题的最简单方法是在样式表目录中包含生成的CSS的输出子目录,然后在.gitignore中排除该子目录。然后,由于必须选择public / stylesheets / foo样式表或public / stylesheets / sass-out / foo样式表,因此在您的视图中必须知道使用的样式类型(SASS或CSS)。

如果您必须走第二条路线,请构建一个帮助程序来抽象掉sass-out子目录。

伽罗 2020.03.24

我总是在“ public / stylesheets / sass / *。sass”中对所有样式表进行版本控制,并为已编译的样式表设置排除过滤器:

/public/stylesheets/*.css
宝儿理查德 2020.03.24

指南针框架建议把你的青菜样式表在公众下的应用程序/样式表和编译的CSS /样式表/编译。

您可以通过将以下代码添加到environment.rb中来进行配置:

Sass::Plugin.options[:template_location] = {
  "#{RAILS_ROOT}/app/stylesheets" => "#{RAILS_ROOT}/public/stylesheets/compiled"
}

如果使用罗盘框架,则在安装时会为您设置此配置。

问题类别

JavaScript Ckeditor Python Webpack TypeScript Vue.js React.js ExpressJS KoaJS CSS Node.js HTML Django 单元测试 PHP Asp.net jQuery Bootstrap IOS Android