Javascript 包括Rails中特定视图的外部JS

Javascript 包括Rails中特定视图的外部JS,javascript,ruby-on-rails,ruby,url-routing,Javascript,Ruby On Rails,Ruby,Url Routing,我正在尝试使用RubyonRails构建我的第一个网站 我已经阅读了有关资产管道的内容,我有一个特定的视图需要引用3个JS库,其他文件不需要引用这些库 我不想将它们用作assets/javascripts清单中的require指令,因为它们最终会出现在所有其他不需要它们的页面上 因此,我想我可以简单地将它们包含在视图模板中 但是,我发现了404:file not found错误 这就是我如何将它们包含在模板/app/views/welcome/index.html.erb: <%= ja

我正在尝试使用RubyonRails构建我的第一个网站

我已经阅读了有关资产管道的内容,我有一个特定的视图需要引用3个JS库,其他文件不需要引用这些库

我不想将它们用作
assets/javascripts
清单中的
require
指令,因为它们最终会出现在所有其他不需要它们的页面上

因此,我想我可以简单地将它们包含在视图模板中


但是,我发现了404:file not found错误

这就是我如何将它们包含在模板
/app/views/welcome/index.html.erb

<%= javascript_include_tag "/lib/assets/javascripts/three.js" %>          
<%= javascript_include_tag "/lib/assets/javascripts/perlin.js" %>
<%= javascript_include_tag "/lib/assets/javascripts/cube.js" %>

编辑 人们建议我移动我的文件。你能解释一下为什么我不能把它们放在
库中吗?文件说,
lib/assets
是libs应该去的地方,我同意这个组织

  • /public
    目录只是为了与我读到的内容向后兼容而保留的(它甚至不再是默认创建的)

您可以将JS文件放在/assets/javascripts(example.JS)中,然后像这样在视图中调用它

  <%= javascript_include_tag 'forexample' %>

所有必需的javascripts文件都只与application.js链接,只是不包括

  <%= javascript_include_tag 'application' %>


在其他视图中。

您可以将JS文件放在/assets/javascripts(example.JS)中,然后像这样在视图中调用它

  <%= javascript_include_tag 'forexample' %>

所有必需的javascripts文件都只与application.js链接,只是不包括

  <%= javascript_include_tag 'application' %>


在其他视图中。

您可以将JS文件放在/assets/javascripts(example.JS)中,然后像这样在视图中调用它

  <%= javascript_include_tag 'forexample' %>

所有必需的javascripts文件都只与application.js链接,只是不包括

  <%= javascript_include_tag 'application' %>


在其他视图中。

您可以将JS文件放在/assets/javascripts(example.JS)中,然后像这样在视图中调用它

  <%= javascript_include_tag 'forexample' %>

所有必需的javascripts文件都只与application.js链接,只是不包括

  <%= javascript_include_tag 'application' %>


在其他视图中。

将您的Javascript放入
/app/assets/javascripts
中,您将能够像这样包含它:

<%= javascript_include_tag 'file-name' %>

请注意,不应包含扩展名。Rails会为您找到它

每个控制器都有自己的Javascript和CSS文件,使用它们是一个好主意

请注意,如果添加更多资产,则必须将
Rails.application.config.assets.precompile+=%w([文件名])
添加到
config/initializers/assets.rb
并重新启动服务器

Libs并不完全符合您的想法,使用public是一个坏主意。。。
正如我所说,最好只将其放入
/app/assets/javascripts

将您的Javascript放入
/app/assets/javascripts
,您将能够像这样包含它:

<%= javascript_include_tag 'file-name' %>

请注意,不应包含扩展名。Rails会为您找到它

每个控制器都有自己的Javascript和CSS文件,使用它们是一个好主意

请注意,如果添加更多资产,则必须将
Rails.application.config.assets.precompile+=%w([文件名])
添加到
config/initializers/assets.rb
并重新启动服务器

Libs并不完全符合您的想法,使用public是一个坏主意。。。
正如我所说,最好只将其放入
/app/assets/javascripts

将您的Javascript放入
/app/assets/javascripts
,您将能够像这样包含它:

<%= javascript_include_tag 'file-name' %>

请注意,不应包含扩展名。Rails会为您找到它

每个控制器都有自己的Javascript和CSS文件,使用它们是一个好主意

请注意,如果添加更多资产,则必须将
Rails.application.config.assets.precompile+=%w([文件名])
添加到
config/initializers/assets.rb
并重新启动服务器

Libs并不完全符合您的想法,使用public是一个坏主意。。。
正如我所说,最好只将其放入
/app/assets/javascripts

将您的Javascript放入
/app/assets/javascripts
,您将能够像这样包含它:

<%= javascript_include_tag 'file-name' %>

请注意,不应包含扩展名。Rails会为您找到它

每个控制器都有自己的Javascript和CSS文件,使用它们是一个好主意

请注意,如果添加更多资产,则必须将
Rails.application.config.assets.precompile+=%w([文件名])
添加到
config/initializers/assets.rb
并重新启动服务器

Libs并不完全符合您的想法,使用public是一个坏主意。。。
正如我所说的,最好将它放在
/app/assets/javascripts
中。

将您的JS文件放在
public
目录下,而不是
lib/assets
。因此,在
public/three.js
的情况下,您可以使用
/three.js
相对URL路径下载它。将您的js文件放到
public
目录,而不是
lib/assets
。因此,在
public/three.js
的情况下,您可以使用
/three.js
相对URL路径下载它。将您的js文件放到
public
目录,而不是
lib/assets
。因此,在
public/three.js
的情况下,您可以使用
/three.js
相对URL路径下载它。将您的js文件放到
public
目录,而不是
lib/assets
。所以,如果是
public/three.js
的话,你可以使用
/three.js
相对URL路径下载它。我知道我不需要包含扩展名,但为什么不应该呢?我很确定Rails不喜欢这样做,而且这意味着代码更少。你知道为什么我不能用ab吗