Большое обновление:
Как я наконец нашел реальное решение, я также обнаружил реальную проблему. Поскольку я записал здесь много бесполезной информации, рассматривая реальную проблему, я делаю огромное обновление вопроса, чтобы другие люди могли легко найти, что происходит, и увидеть решение.
Проблема: Это из-за конвейера активов Rails 3.1
На самом деле... Это простой: активы были дважды предоставлены в среду разработки. Выполнение многих исследований свидетельствует о том, что мой сервер Rails 3.1 предоставлял активы из папок "приложение/активы" и "общедоступные/активы". Итак, у меня были дублированные файлы .js и .css, которые разбивали все мои javascript-анимации (да... привязка дважды к одному и тому же событию и обработчик к одному и тому же элементу - это не то, что вы хотите... обычно).
И если проблема возникла внезапно, это было связано с тем, что мне пришлось запускать "rake assets: precompile" для развертывания моего приложения. С тех пор, когда мое приложение выполнялось в процессе разработки, сервер выполнял рендеринг статических прекомпилированных активов и динамических предварительно скомпилированных активов.
Решение (теперь лучше несколько строк ниже), но вы все равно можете прочитать его
Первый: мне просто пришлось удалить все предварительно скомпилированные активы из моей общей папки.
Лучше один: добавьте config.serve_static_assets = false в development.rb, что предотвратит загрузку файлов из /public/assets. Кроме того, не забудьте reset кеш браузера.
[Редактировать: 20 июля 2012]
Продвинутый: у меня недавно возникла новая проблема из-за этих статических активов. Знаете, когда вы используете скрепку или какой-либо другой драгоценный камень, и они добавляют ваши изображения в общую папку в какой-то системной подпапке, потому что лучше, если вы хотите развернуть свое приложение с помощью capistrano. Ну, это здорово, но! Поскольку мы добавили config.serve_static_assets = false, эти изображения не отображаются в разработке и это плохо, если вы хотите сделать некоторые css на них. Так! Что делать тогда?
Ну, на самом деле вам придется включать статические активы в развитие следующим образом:
# Expands the lines which load the assets
config.assets.debug = true
config.serve_static_assets = true
Затем, чтобы рельсы не отображали ваши другие активы дважды (прекомпилированные), просто выполните эту команду:
rake assets:clean
Это противоположность rake assets: precompile и очистит вашу папку public/assets так, чтобы Rails не выдавал ваши активы дважды. Конечно, вам все равно придется очищать кеш браузера и очищать свои активы каждый раз, когда вы их предварительно скомпилировали.
[Редактировать: 18 ноября 2013] - От ответа @idejuan
Другое решение:
Вы можете добавить эту строку:
config.assets.prefix = '/dev/assets'
В development.rb, где префикс может быть любым, что вы хотите. Скрипты больше не будут загружаться, а изображения в /public/system будут прочитаны! Но будьте осторожны, так как он изменяет путь к вашим "статическим" активам... если вам нужны активы из драгоценного камня, он может не загружать их должным образом в процессе разработки...
[Редактирование конца]
Оставшийся вопрос с ответом!
Хорошо, почему мое приложение для разработки создавало статические прекомпилированные активы?
Фактически, если вы предварительно скопируете свои активы локально, рельсы выдают активы из общей папки И из папки с ресурсами в среде разработки и тестирования по умолчанию. Обычно активы из общей папки должны перезаписывать их из папки с ресурсами, но это не так, и даже если это произойдет, мы потеряли бы преимущества "debug_mode", поскольку нам приходилось каждый раз перекомпилировать активы. Итак... Активы отображаются дважды, когда они предварительно скомпилированы локально в среде разработки и тестирования.
Итак, добавив в файл development.rb файл "config.serve_static_assets = false", вы каким-то образом перезапишите строку по умолчанию, в которой Rails будет выглядеть в вашей общей папке для активов. Надеюсь, в один прекрасный день они сделают что-то более чистым в отношении локально прекомпилированных активов.
Спасибо тем, кто помогал мне в моих расследованиях:).
Kulgar.