Rails使用数据库中的数据重新编译资产



我想用数据库中的数据重新编译资产。我的应用程序只有不到10个用户,我想在部署时在public/assets文件夹中编译样式表。

在数据库中,我有一个表来存储用户的颜色偏好。

user_id | primary_bkg | secondary_bkg
1234      red            blue
1235     yellow         blue

config/environments/development.rb

config.assets.compile = true

用户颜色偏好表中的变量将覆盖应用程序中的变量。css

在哪里可以触发重新编译资产并从数据库中提取数据?

如果您想在部署时预编译,如何实现它取决于您选择的部署框架。一般来说,配置您的部署框架,使其运行(如果是Rails5+(

RAILS_ENV=production rails assets:precompile

在部署时(或在每次部署时手动运行(。

或者,您可以编写

config.assets.compile = true

在您的config/environments/production.rb(而不是development.rb(中,尽管这意味着每次访问都会提示重新编译资产,因此资源量很大。

静态资产不是动态创建的。它们只是纯CSS或纯JS。

如果我理解的很好,你想要和你的用户一样多的CSS文件。它将创建比所需更多的静态资产。它看起来效率不高。

为什么你不尝试以正常的方式编译你的资产,让这些静态资产对每个用户都是通用的,并从html:动态设置背景颜色

<div style="background-color: <%= @user.primary_bkg %>;">
</div>

最新更新