在rails项目中动态插入样式表

时间:2012-12-05 11:37:23

标签: javascript ruby-on-rails ruby backbone.js underscore.js

我为自己正在为学校开发的CMS建立了一个实时主题选择器。 CMS是使用Ruby on Rails构建的,我(个人)对Ruby on Rails没有任何经验(其他人正在做后端的事情,我是前端人员)。

现在我想要用javascript(Backbone,Underscore和jQuery)编写的主题选择器与Rails一起使用,但我找不到在Rails中包含样式表的正确方法。目前我正在给出一条静态路径:

// Insert a new stylesheet
var stylesheet = $("<link />", {
    href: "stylesheets/themes/theme-" + this.themeID + "/theme-color-" + colorset + ".css",
    rel: "stylesheet",
    id: "js-theme-colorset"
});

// Append the stylesheet to the iframe
$('head', $('#js-theme-iframe')[0].contentWindow.document ).append( stylesheet );

但CMS是动态的,所以我想从资产管道中获取样式表,但我不确定如何解决这个问题。试过这个:

// Insert a new stylesheet
var stylesheet = '<%= stylesheet_link_tag "themes/theme-1/theme-color1.css", :id => "js-theme-colorset" %>';

// Append the stylesheet to the iframe
$('head', $('#js-theme-iframe')[0].contentWindow.document ).append( stylesheet );

但这没有成功..

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

找到它,当你想通过javascript链接到你的样式表时,你需要指向:assets。

我正在寻找的链接是:assets / themes / theme-0 / theme-color-1.css

你不需要指定样式表,Rails知道(显然)。只需链接到资产管道即可。无论如何,谢谢你的答案:)!