用户确定的 CSS 和轨道中的路径



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

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

如果我使用类似的东西:

stylesheet_link_tag "plain.css"

当然,它会生成一条指向/assets/plain 的路径.css这不是一条有效的路径。

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

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

如果所有主题都是简单的预先存在的样式表,用户可以从中选择一个,我会选择它

/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帮助程序,以更干净的方式为您执行此操作。

最新更新