提问人:Josh 提问时间:11/20/2011 更新时间:11/20/2011 访问量:445
Rails 3.1 预编译资产在生产模式下破坏了 javascript remote_forms
Rails 3.1 precompiled assets breaking javascript remote_forms in production mode
问:
我已经修复了有关“xxx”未编译的所有错误,并且所有资产都显示出来 - 在本地运行时一切正常:
- 所有 ajax 请求都有效
- 表单提交使用 rails 远程标记并正确触发
但是,在本地(和 Heroku)以生产模式运行时:
- 一些ajax可以工作 - 但是像PUT这样应该更新记录(并在开发中执行)的东西不能......他们将点击页面,但不会进行实际的数据库更新
- 远程表单被完全破坏,导致常规表单提交
可以从这里克隆源:https://github.com/bluescripts/reru_scrum
也许我错误地编译了资产,或者我的应用程序.js文件中缺少适当的包含?
我一直在通过以下方式进行编译:
rake assets:precompile
答:
3赞
KL-7
11/20/2011
#1
你错过了你的.此文件带有 gem,除其他事项外,还负责处理远程链接和表单。//= require jquery_ujs
application.js
jquery-rails
顺便说一句,我建议从您的存储库中删除并添加到 ..Gemfile.swp
.*.swp
.gitignore
评论
0赞
Josh
11/20/2011
因此,这在生产中修复了它,除了选择一个故事作为打开/关闭之外的所有内容。但是在开发模式下,这会导致所有内容都重复发布;有什么想法吗?
0赞
KL-7
11/21/2011
预编译的资源不应在开发模式下使用。请参阅此问题的答案。您只需从本地公共目录中删除所有预编译资源,并在部署脚本中设置预编译,这样预编译资源将仅存在于生产环境中的服务器上。
0赞
Josh
11/21/2011
做到了!清除所有旧资产,然后在本地编译并推送,使其再次运行。
评论