所以我有一个HTML文件,我将转置到我的Rails应用程序中的ERB视图。


但是,在HTML中,我有一个JS的片段必须最后运行(在其他所有内容之后),因为它处理页面滚动的方式。


所以我们拥有所有HTML,然后就在&lt之前; / body>
,我有:
< script>
 //控制滚动条的一些很棒的JS
< / script>



 但我还没弄明白如何制作它可以在资产管道中按照Rails惯例正常工作。


这个文件是我的 Home#Index
,这是我的应用程序的营销网站对于未登录的用户。
如果我将此< script>
标记放在管理此的布局顶部主页#Index
,它不起作用。
如果我把这个JS移到我的 app / assets / javascripts / home.js里面
也不起作用,因为它在加载 application.js
之前加载 home.js
。
我也不想把它放在 application.js
中,因为它会干扰我的应用程序中同样命名的其他类。
如果不在 app / vie中执行
,因为这感觉不对。< script> JS< / script>
,最好的RAILSy方法是什么? ws / home / index.html.erb
答案 0 :(得分:1)
以下步骤可以解决您的问题:
step:1 app/views/home/index.html.erb (provide source of JS.)
<%= javascript_include_tag 'custom/xyz.js', 'data-turbolinks-track' => true %>
step 2: assets/javascrips/custom/xyz.js (JS goes here)
$(function(){
//js code goes here
});
step 3: application.js (the require_directory directive which includes all JavaScript files only in the directory specified, without recursion.)
//= require_directory .
step 4: application.rb
config.assets.precompile += %w(custom/*.js)