![](/img/trans.png)
[英]rails not registering javascript files under app/assets/javascripts
[英]Why coffee files in app/assets/javascripts are loaded in all the files?
我在app / assets / javascripts中有多個文件,為了測試,我已經在以下文件夾中寫入了一個文件:test.coffee:
$ ->
$(document).ready ->
alert("Hey");
我的問題如下:
為什么將javascript加載到我訪問我的網站的所有頁面中,我知道其中包含application.js,但我認為它沒有經過優化,沒有嗎?
您如何看待? 您能告訴我一種優化的方法來在多個頁面中進行Ajax調用,但是網站的所有頁面中沒有包含嗎? 其實我喜歡這樣:
<script type="text/javascript">
$(document).on('keyup', 'input#field_seller_name', function(e){
if(e.keyCode == 13 && $(this).val() != ""){
$.ajax({
url: '/field_sellers/' + $(this).parent().parent().data('field_seller_id'),
type: 'PUT',
dataType: 'script',
data: {
field_seller: {
name: $(this).val()
}
},
error: function(result){
alert(result.responseText);
}
});
}
});
</script>
我將這部分代碼放在一個文件中,並且只在一頁中加載,我認為它不干凈...否則我會這樣:
$ ->
# This is for CREATE an new type_material by press enter touch with input in focus
$(document).on 'keyup', '#name_new_type_material', (evt) ->
if evt.keyCode == 13
$.ajax '/type_materials',
type: 'POST',
dataType: 'script',
data: {
field_type_user: {
name: $(this).val()
}
}
但是就像我在頂部說的那樣,它已加載到所有網站中...
Linguee幫助我寫了這個問題...
謝謝 !
為什么將app / assets / javascripts中的coffee文件加載到所有文件中?
那是設計使然。 您的views/layouts/application.html.erb
會加載javascript文件application.js
。 如果您轉到app/assets/javascripts/application.js
,則會看到有關加載所有資產的說明。 由於application.js
已加載到您的所有頁面上(由於它位於布局模板中),因此所有資產都加載到了所有頁面上。
您可以做的是創建另一個“主”文件。 說, app/assets/javascripts/application-with-custom-ajax.js
並在其中加載其他邏輯(而不是在application.js
加載)。 然后,您只需要確保在需要其他邏輯的頁面上包括此替代文件,而不是application.js
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.