0

我正在构建一个 Rails 3.2 应用程序,它具有一些功能,用户可以将不同的主题(即 CSS 文件)应用到他们的网站。我有一个带有主题名称和文件名的主题​​模型 - 非常简单。

我的问题是,这些 css 文件应该放在哪里?它们应该在 /assets 文件夹中,还是在 /public 文件夹中?据我所知,它们无法添加到管道中,因为我不知道用户将选择哪个 css 文件,因此无法预编译。

如果我使用类似的东西:

stylesheet_link_tag "plain.css"

它当然会生成 /assets/plain.css 的路径,该路径不是有效路径。

我可以把它放在 /public 并使用类似的东西生成路径 "public/themes/" + theme.file

但这感觉有些不对劲。有什么架构建议吗?

4

1 回答 1

1

如果所有主题都是用户选择的简单的预先存在的样式表,我会选择

/app/assets/stylesheets/themes/plain.css

然后在视图中使用它:

stylesheet_link_tag "themes/plain"

# or e.g. using the model

stylesheet_link_tag "themes/#{current_user.theme.file_name}“

您还可以考虑创建一个theme_stylesheet_tag帮助程序,以更干净的方式为您执行此操作。

于 2012-11-13T15:39:24.293 回答