Rails在html公共文件中包含js

Giu*_*ppe 0 html javascript ruby ruby-on-rails ruby-on-rails-5.1

我有一些html页面,其中每个页面都包含一些javascripts文件。我必须在哪里放置这些文件?

folder/
  page1/
    index.html
    script1.js
  page2/
    index.html
    script2.js
Run Code Online (Sandbox Code Playgroud)

更新

我解释得更好。我有一些由html页面和一些javascripts文件组成的小项目,其中使用画布。每个页面都有不同的脚本。

/sketches
  /project1
     index.html
     script1.js
     sketch.js
  /project2
     index.html
     sketch.js
Run Code Online (Sandbox Code Playgroud)

名为“ sketch”的文件在它们之间是不同的。我努力使一个控制器具有一个参数id,并以此为基础加载另一个项目。我这样做是将html页放在公用文件夹中,并且可以正常工作,但是我在使用javascript时遇到了问题,被拒绝了。

因此,对于您对我说的话,我必须将所有javascript放在单独的文件夹中...我想保留该结构。Rails中没有办法将包含所有项目的文件夹作为静态服务吗?

Vis*_*hal 6

您必须将所有js文件放在app/assets/javascripts文件夹下。

更新的答案

每次都将主要JavaScript加载到application.js中。现在创建满足不同需求的文件。创建一个form.js文件,一个myfancypart.js文件等。不要将它们加载到application.html.erb布局中。在需要它们时动态加载它们:

application.html.erb:

<%= javascript_include_tag "application" %>
<%= yield :javascript_includes %>
Run Code Online (Sandbox Code Playgroud)

您的view.html.erb顶部或users / new.html.erb:

<% content_for :javascript_includes do %>
  <%= javascript_include_tag "users_new.js" %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

content_for块中的所有内容都将以yield:javascript_includes加载。

资料来源:stackoverflow