私はいくつかのレール3.1アプリを持っています。JSファイルはレールアプリに二重付属しています
私は自分のapplication.jsファイルに含まれるjsファイルをたくさん持っています。ここに私application.jsです:
//= require jquery
//= require jquery-ui
//= require jquery_ujs
//= require_self
//= require_tree .
問題は、私がconfig.assets.debugてきたときに、development.rb、trueに設定私のJavaScriptファイルのすべてが二重含まれるヘッダに入るということです。実際には、明示的に二重インクルードされているわけではありませんが、一度個別に、そしてコンパイルされたapplication.jsファイルの一部として一度インクルードされます。 jsインクルードタグは次のようになります。
<script src="/assets/jquery.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery-ui.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery_ujs.js?body=1" type="text/javascript"></script>
<script src="/assets/application.js?body=1" type="text/javascript"></script>
<script src="/assets/animation_elements.js?body=1" type="text/javascript"></script>
<script src="/assets/categories.js?body=1" type="text/javascript"></script>
<script src="/assets/facebox.js?body=1" type="text/javascript"></script>
…
どうしてですか?この結果、さまざまなJQueryのonClick()ビヘイビアが2回、他のナンセンスで実行されています。何が問題なの?あなたはいくつかの点であなたの資産をプリコンパイルしていることがあるかのように
Geobooks::Application.configure do
# Settings specified here will take precedence over those in config/application.rb
# In the development environment your application's code is reloaded on
# every request. This slows down response time but is perfect for development
# since you don't have to restart the webserver when you make code changes.
config.cache_classes = false
# Log error messages when you accidentally call methods on nil.
config.whiny_nils = true
# Show full error reports and disable caching
config.consider_all_requests_local = true
#config.action_view.debug_rjs = true
config.action_controller.perform_caching = false
# Don't care if the mailer can't send
config.action_mailer.raise_delivery_errors = false
# Print deprecation notices to the Rails logger
config.active_support.deprecation = :log
# Only use best-standards-support built into browsers
config.action_dispatch.best_standards_support = :builtin
#for devise
config.action_mailer.default_url_options = { :host => 'localhost:3000' }
# Do not compress assets
config.assets.compress = false
# Expands the lines which load the assets
config.assets.debug = false
end
あなたは、JSファイルをapplication.jsファイルにコンパイルされていることを正確に正しいですが、私はすでにそれを知っていました。私はherokuに私のアプリをプッシュする前に私の資産をプリコンパイルします。プリコンパイルされたアセットを削除し、manifest.ymlをgitIgnoreし、herokuがプリコンパイルを処理するように思えます。私はそれを試みます。 – CharlieMezak
@CharlieMezakはその仕事をしましたか? –