使用 SASS 切换用户主题 - Ruby on Rails

2024-05-13

所以我有一个 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 个简单步骤:

  1. 部署时将所有主题编译到不同的文件中。这将处理时间戳、压缩等。

  2. 使用默认主题渲染页面。

  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(使用前将#替换为@)

使用 SASS 切换用户主题 - Ruby on Rails 的相关文章

  • 将箭头添加到 Twitter Bootstrap 的下拉药丸中?

    我的 Twitter 引导下拉按钮成功工作 但我有一个小问题 这里的黑色导航栏 http twitter github com bootstrap javascript html dropdowns http twitter github
  • Rspec:测试救援

    尝试测试我的函数是否能够正确地从异常中解救 更改参数 文件名 然后重试一次 我可以让函数接收第一次尝试 但无法让它接收第二次尝试 控制器 begin video get video video id rescue matches video
  • 为什么响应式图像需要“高度:自动”?

    是否有必要定义height auto现在 原因是什么 img max width 100 height auto Thanks 在没有明确设置高度尺寸的图像上 它实际上默认为自动高度 所以如果你设置max width 100 高度将由浏览器
  • 使用边距与填充? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我最近开始自己在线学习周三开发 并且是这个领域的新手 所以对我的基本查询表示歉意 我知道边距和填充之间的区别 用逻辑术语 但不太确定 何时应该使
  • Rails 3.1 引擎迁移不起作用

    我正在创建一个带有迁移的 Rails 3 1 引擎 rake db migration 在该引擎和主机应用程序内运行良好 但我需要将此引擎包含到另一个 Rails 引擎中 第二个引擎包含用于测试的虚拟应用程序 我将这一行添加到该虚拟应用程序
  • Rails 中带有 text_field 的逗号分隔数组

    我有一些users可以有很多posts 并且每个帖子都可以有很多tags 我已经使用一个实现了拥有并属于许多帖子和标签之间的关系 创建新帖子时 用户可以使用逗号分隔的值列表对其进行标记 就像在 SO 上发布新问题时一样 如果任何标签尚不存在
  • 更改 CSS 样式表的选择器属性

    以下是我们传统上如何更改重复元素的样式 将样式应用到每个元素 function changeStyle selector prop val var elems document querySelectorAll selector Array
  • CSS 省略号与内联元素?

    我已经调整了 jQuery UI MultiSelect Widget 以便文本将显示所有选定的标签 但如果选择显示太多元素 则文本将被修剪和省略 我是这样做的 ui multiselect selected text display bl
  • 在Rails 3中,如何使用button_to更改布尔值?

    我正在尝试编写一个button to 语句来更新我的activerecord 数据库中的布尔值 这是我尝试过的 从更大的角度来看 我想做的是有一个按钮可以更新支付对象并触发对宝石汇款与亚马逊支付进行通信的私有方法的调用 所以 1 如何使用b
  • 无法在 Windows 7 上安装 Rmagick 和 Imagemagick

    当我跑步时gem install rmagick 2 13 1 gem从 rmagick 2 13 1 gem 所在的目录中 我收到一个错误 指出它无法构建 gem 本机扩展 下面显示 c Ruby192 bin ruby exe extc
  • 强制执行 has_many 但当前只有一个关联的“rails 方式”是什么?

    我有一个简单的 Rails 应用程序 其中包含模型项目和阶段 一个项目有许多阶段 但一次只能有一个阶段处于活动状态 即 当前 我仍然希望其他阶段可以访问 但当前阶段应该是应用程序的主要锚点 关于如何实现此要求的决定对我如何处理模型访问 验证
  • 如何避免ActiveRecord模型双重保存?

    型号 一 class One lt ActiveRecord Base before save do stuff private def do stuff two Two find 8 two field2 Value two save e
  • :autosave 忽略了 has_many 关系——我错过了什么?

    我有两门课 class Collection lt ActiveRecord Base has many items autosave true end class Item lt ActiveRecord Base belongs to
  • 更改网格模板列会破坏布局

    定义时grid template columns在相应的父 div 中这很好 wrapper display grid grid template columns 1fr 1fr 700px 但是如果我只想要两列怎么办 如果我删除其中之一f
  • CSS:响应式布局中的高度自动问题

    我在响应式布局中使用 jquery 延迟加载 并使用空白 gif 作为预览图像 为了使延迟加载工作 我必须通过属性设置图像的高度和宽度 预览图像未设置为正确的高度 因为 height auto 似乎是通过 src 而不是通过高度属性计算高度
  • 列表项的替代背景颜色

    我有一个列表 每个项目都是链接的 有没有办法可以替换每个项目的背景颜色 ul li a href link Link 1 a li li a href link Link 2 a li li a href link Link 3 a li
  • 如何使输入字段的宽度为 100% 减去提交按钮的宽度?

    我有一个非常基本的单一输入字段 旁边有一个 提交 按钮 搜索按钮的固定宽度为 104 像素 两者都包裹在一起 总宽度占浏览器视口的 50 我的计划是允许输入字段随着浏览器窗口的扩大而扩大 目前 对于我的特定浏览器窗口 我必须修复输入字段的宽
  • 使用 Ruby Curb 传递 GET 参数

    我正在尝试使用 Curb curb rubyforge org 调用需要在 get 请求中提供参数的 RESTful API 我想获取一个像这样的URLhttp foo com bar xml bla blablabla 我希望能够做类似的
  • 如何让更大的布局适合小设备屏幕?

    我有一个小问题meta viewport元素 问题是我的布局min width比我想要使用的许多屏幕分辨率都要大 所以将其设置为 没有帮助 结果我得到的页面必须缩小以适应设备宽度 如果我什至添加像 它也不起作用 发现了一个黑客来自CSS 技
  • CSS - 最大宽度和椭圆

    我有一个包含文本的跨度 我希望跨度扩大到最大 500px 以容纳里面的文本 达到最大值后 我希望文本为任何溢出最大宽度的文本显示省略号 这可能吗 我尝试了以下方法 但这并没有达到目的 Thanks position absolute top

随机推荐

  • 调试断言失败。表达式(流!=NULL)

    我收到以下错误 调试断言失败 表达式 流 NULL 文件 f dd vctools crty bld self x86 crt src fwrite c 创建 4 个线程时 CPU 使用率 100 该代码最初运行良好一段时间 然后给出此错误
  • Heroku 上的 ZeroMQ

    为什么 Heroku 上不存在它 我想使用 Akka 和分布式队列系统让参与者在不同的测功机上进行通信 RabbitMQ 似乎并不是使用 Akka 的最佳选择 因为需要很多技巧才能与 actor 无缝协作 而不用担心底层队列 尽管如此 最好
  • 如何简化 ASP.NET MVC 中的全状态交错模式对话框

    我需要在多对多模式对话框中保留状态渐进增强 http en wikipedia org wiki Progressive enhancementASP NET MVC 项目中的方式 在我的代码中 当禁用 javascript 时 模式对话框
  • Linux 上 的默认键绑定是什么? Mac 将此绑定到命令

    Vim 的一些示例设置 例如janus https github com carlhuda janus 将命令键绑定到某些命令 例如 Command Shift F for Ack map
  • 编写 CoffeeScript 时有没有办法捕获拼写错误

    这个小 CoffeeScript 包含一个拼写错误 drinks Coffee drinks drinks Tea drinsk drinks Lemonade alert drinks 目的是提醒 咖啡 茶 柠檬水 但结果却是 咖啡 茶
  • 使用 json-framework 解析 iphone 应用程序中的 JSON

    我是 iPhone 开发新手 我在我的应用程序中使用货币转换器 我不知道如何用这个 url 解析 jsonhttp www google com calculator http www google com calculator 我想发送我
  • 如何使用 Sails.js 和 Waterline 更新 MongoDB 子文档中的特定键?

    当尝试使用 Sails js 和 Waterline ORM 更新 MongoDB 子文档中的单个键时 我遇到了问题 这就是我的person js模型看起来像 module exports attributes name type stri
  • 继承的静态成员的静态初始化

    考虑这个示例代码 public class A
  • 查找线段上距某点最近的点的坐标

    我需要计算从点 P 到线段 AB 绘制的垂直线的脚 我需要点 C 的坐标 其中 PC 是从点 P 到线 AB 垂直绘制的 我在 SO 上找到的答案很少here https stackoverflow com questions 129956
  • UITextInputMode currentInputMode 已弃用。建议更换?

    在我们的应用程序中 我们想检测当前的键盘语言 例如 如果用户在 设置 gt 常规 gt 键盘 gt 键盘 下设置了多种语言键盘 我们想知道他们正在输入什么语言 并在发生变化时从 NSNotificationCenter 收到通知 void
  • Rails:页面加载时间很长

    我有一个 Rails 项目 我在一个控制器中遇到了非常奇怪的事情 浏览器需要大约 3 分钟来加载页面 但 Rails 在日志中写入 Completed 200 OK in 20563ms Views 17144 2ms ActiveReco
  • 让 Compass 将供应商前缀添加到动画选择器

    谁能告诉我如何让 Compass 在编译时将供应商前缀添加到 CSS3 动画选择器中 我的配置文件如下所示 http path css dir sass dir images dir img javascripts dir js outpu
  • Xively 配置:多次激活设备/再次获取 API 密钥和 feed Id

    我正在测试嵌入式设备的配置 在该设备上电循环时无法保存 API 密钥和源 ID 激活产品一次后 我在第二次尝试获取设备 API 密钥和 feed id 时收到 403 禁止 即使我在发出请求时提供了主 API 密钥 具有读取权限 然而 当使
  • 使用 R:如何创建带有日期的时间序列对象?

    我有一年中每小时采集的一系列值 是否可以创建一个保留小时和年份值的时间序列对象 我的代码使用股票价格第一列中的值 但不使用日期 stockprices ts lt ts stockprices 1 start 1 freq 168 您没有提
  • 猫鼬的深层填充

    我有两个模式 一张用于用户 另一张用于帖子 在用户模式中 我有latestPost的一个属性 它是帖子模式中条目的ObjectId 当我加载用户对象时 我想将 lastestPost 作为对象获取 其中包含用户架构中作者的用户名 其中作者是
  • 如何为带有继承的 C++ 类编写 C 包装器

    我只是想知道是否有一种方法可以为具有继承的 C 类创建 C 包装 API 考虑以下 class sampleClass1 public sampleClass public int get return this data 2 void s
  • 合并两个 Joda-Time Interval 对象

    In 乔达时间 http www joda org joda time 有什么办法可以创建一个Interval http www joda org joda time apidocs org joda time Interval html作
  • 防止 Visual Studio Code 或 IDE 泄露 Python 类私有方法

    只是想问一个简单的问题 本质上 我想知道是否可以从 Visual Studio Code 或其他 IDE 提供的建议列表中隐藏 Python 类私有方法 例如 假设我们有一个类 A Creating a class class A Decl
  • 跨平台 C++ IMAP 库 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有任何可以从 C 使用的跨平台 仅对 Windows 和 OS X 感兴趣 IMAP 库 最好也是
  • 使用 SASS 切换用户主题 - Ruby on Rails

    所以我有一个 Rails 管理系统 允许用户选择一个主题 基本上是一组 SASS 颜色变量 它将使用新颜色重新编译 application css scss 当用户从下拉菜单中选择并提交时 更改此设置的最佳方法是什么 我阅读了一些有关缓存和