На днях я столкнулся с некоторыми проблемами Ajax, когда формы отправлялись несколько раз одним нажатием кнопки отправки. Я немного просмотрел, и кто-то порекомендовал мне удалить мою папку public/assets, я сделал это и перезапустил свой сервер только для того, чтобы обнаружить, что некоторые из моих библиотек Javascript больше не работают правильно...
На самом деле это очень странно, потому что я могу посмотреть исходный код с помощью отладчика Firebug и убедиться, что он определенно загружен. Я пытался очистить свой кеш, я пытался прокомпилировать свои активы в режиме разработки, я пытался перезапустить свою систему, но ничего из этого не сработало. Мой Javascript просто не работает и молча терпит неудачу после удаления моей папки public/assets. — см. редактирование
Краткий обзор того, как я создал эту проблему:
- Сервер остановлен
- Удалены общедоступные ресурсы/ресурсы
- Перезапустил сервер и заметил проблему
- Кэш очищен
- Сервер снова остановился и попытался выполнить предварительную компиляцию ресурсов
Дополнительные вещи, которые я пробовал:
- Установите
config.serve_static_assets = false
в development.rb, снова выполните предварительную компиляцию и перезапустите сервер Подтверждено, что я работаю в режиме разработки через 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>
Первоначально я думал, что файлы загружаются не из моего конвейера активов, но вместо этого похоже, что мои изменения вызвали какой-то конфликт за кулисами. Я удалил require_tree
из своего файла application.js и попытался загрузить библиотеки вручную, чтобы обнаружить, что они снова начали работать, это не идеальное решение для меня.
jQuery(document).ready(function($) {...});
не срабатывать....? - person Noz   schedule 03.08.2012