我是rails新手,對於資產的加載方式我有點困惑。我可以讓事情有效,但我想了解幕後真正發生的事情。Rails資產使用說明
我一直在閱讀文檔,但有些內容我完全不理解。
清單文件
,混淆我是清單文件使用的第一件事。
舉例來說,如果在我的應用程序/資產/ Java腳本/ application.js中的文件,我有:
//= require_tree .
Rails文檔說:
告訴鏈輪遞歸包括在 所有JavaScript文件指定目錄輸入到輸出中
什麼是不清楚的是哪個目錄?應用程序/資產/ JavaScript的/?
這是否意味着如果我在app/assets/javascripts /中添加文件,它將被加載並提供服務?
如果我再補充一點需要補充,我需要添加到清單文件的文件example.js寶石:
//= require example.js
但如果//= require_tree
已經加載並服務於應用程序/資產的文件,爲什麼這是必要的/ javascripts /這是我把我的example.js的位置?好吧,允許我指定順序,如果以後我添加更多需求。但除此之外呢?
HTML文件
然後腳本被列入application.html.erb
<%= javascript_include_tag ('application'), 'data-turbolinks-track' => true %>
我明白這上面加載,因此在其中的各種//= require
提到的application.js文件。
有時會發生需要腳本的特定文件:
<script src="js/example.js"></script>
是這種情況不會<script src="js/example.js"></script>
做的//= require example.js
同樣的事情?
PUBLIC VS APP資產
我明白,如果我把我的example.js公共文件/文件夾的資產就不會被編譯,而是單獨提供。我爲什麼要這麼做?如果在連接和編譯文件時沒有正確地提供文件,並且僅在分離服務時才能正常工作,是否合理?換句話說,如果我在app/assest中包含一個.js文件,並且它有加載或破壞的問題,是否值得嘗試從那裏刪除它並將它移動到公共/資產,或者這樣做沒有意義嗎?
APP資產VS賣方資產
在這情況下,我應該添加一個文件到供應商的資產,而不是應用程序的資產?將它添加到某個地方或另一個地方有什麼區別? 而在我的供應商/ assets/javascripts中,我只有一個空的.keep文件。所以,應用程序/資產上的清單文件就是如此。這個文件夾中的文件如何引用呢?