You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rails 7+React生产环境前端修改不生效问题求助

解决思路

1. 确认esbuild资源是否重新打包

  • 拉取新代码后必须执行rails assets:precompile,Rails 7搭配esbuild时,生产环境依赖预编译生成public/assets/下的最新资源文件,未执行的话不会更新前端内容。
  • 检查服务器public/assets/目录下的文件修改时间,确认是否生成了带哈希值的新资源文件(esbuild会通过哈希值避免缓存)。
  • 确认生产环境配置config.assets.compile = false(默认值),该配置下服务器不会自动编译未预编译的资源。

2. 检查Jelastic Cloud的部署流程

  • 确认Jelastic部署脚本中是否包含rails assets:precompile步骤,部分平台不会自动执行资产预编译,需手动添加到部署钩子中。
  • 尝试在Jelastic控制台手动重启整个应用实例,或执行sudo systemctl restart nginx重启NGINX服务,确保应用完全加载新资源。

3. 验证缓存相关设置

  • 强制浏览器硬刷新(Ctrl+Shift+R / Cmd+Shift+R),排除本地浏览器缓存的影响。
  • 检查NGINX配置中/assets/目录的缓存过期时间,若配置了过长缓存,可临时调整或删除NGINX缓存目录(若开启了缓存)。

4. 检查esbuild配置与环境变量

  • 确认服务器RAILS_ENV环境变量为production(执行echo $RAILS_ENV查看),开发环境的实时编译逻辑不适用于生产部署。
  • 查看config/esbuild.config.js,确认输出路径是否指向public/assets,是否存在遗漏编译文件的配置。

5. 验证资源引用路径

  • 查看页面源码,检查引入的JS/CSS文件是否为带最新哈希值的路径,若路径指向旧文件则会加载旧内容。
  • 确认config.action_controller.asset_host配置正确,避免资源加载到错误地址。

内容的提问来源于stack exchange,提问作者Unik6065

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 19:07:41