所以我有一个 Rails 管理系统,允许用户选择一个主题,基本上是一组 SASS 颜色变量,它将使用新颜色重新编译 application.css.scss 。当用户从下拉菜单中选择并提交时,更改此设置的最佳方法是什么?我阅读了一些有关缓存和重新编译的问题,但我不完全清楚如何设置它。
目前我有..
应用程序.css.scss
@import "themes/whatever_theme";
@import "common";
@import "reset";
@import "base";
主题/_whatever_theme
$theme_sprite_path: '/images/sprite_theme_name.png';
$main_color:#009DDD;
$secondary_color:#b3d929;
$light_background:#f2f2f2;
$border_line:#e6e6e6;
$off_white:#f9f9f9;
$white:#ffffff;
$font_body:#565b59;
$font_headers:#363a36;
假设我有 5 个不同的主题供用户切换,最好在 Rails 中为每个主题设置变量名称,然后将它们传递给 SASS 并动态更改它们并重新编译。这是解决这个问题的最佳方法吗?
3 个简单步骤:
部署时将所有主题编译到不同的文件中。这将处理时间戳、压缩等。
使用默认主题渲染页面。
使用 javascript 加载备用主题 CSS。
无需搞乱动态编译之类的事情。
要动态加载 CSS,您可以使用如下内容:
function loadCSS(url) {
var cssfile = document.createElement("link");
cssfile.setAttribute("rel", "stylesheet");
cssfile.setAttribute("type", "text/css");
cssfile.setAttribute("href", url);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)