【发布时间】:2012-08-03 16:23:42
【问题描述】:
前几天我遇到了一些 Ajax 问题,即通过单击提交按钮多次提交表单。我浏览了一下,有人建议我删除我的 public/assets 文件夹,我这样做并重新启动了我的服务器,却发现我的一些 Javascript 库不再正常运行......
这实际上很奇怪,因为我可以用 Firebug 调试器查看源代码,我可以看到它肯定已加载。我试图清除我的缓存,我试图在开发模式下编译我的资产,我尝试重新启动我的系统,这些都不起作用。我的 Javascript 根本没有运行,并且在删除我的 public/assets 文件夹后静默失败。 - 查看编辑
我如何制作这个问题的快速参考:
- 服务器已停止
- 已删除公共/资产
- 重新启动服务器并发现问题
- 已清除缓存
- 再次停止服务器并尝试预编译资产
我尝试过的其他事情:
- 在development.rb中设置
config.serve_static_assets = false,再次预编译并重启服务器 通过 rails s -e development 验证我在开发模式下运行
删除了我的 tmp/cache 文件夹
额外信息:
我使用的是 Rails 3.1.3 版
我最近开始使用一个 Gem,它要求我在开发中将 config.cache_classes 设置为 true。我通过将其设置为 false 并重新测试来验证这不是问题。
编辑
进一步的测试表明,我的更改阻止了以下代码的触发:
<script type="text/javascript">
$(document).ready(function() {
alert("Hello world!")
});
</script>
但这很好用:
<script type="text/javascript">
alert("Hello world!")
</script>
最初我认为文件没有从我的资产管道加载,但看起来我的更改在幕后引起了某种冲突。我从我的 application.js 文件中删除了 require_tree 并尝试手动加载库以发现它们再次开始工作,这对我来说不是一个理想的解决方案。
【问题讨论】:
-
似乎是什么原因导致我的
jQuery(document).ready(function($) {...});函数无法触发......?
标签: jquery ruby-on-rails-3 caching asset-pipeline