好的我对rails一般是新手,这些默认的加载器和缓存加载器是他们对我有意义的所有东西。但我的问题是。如果我想在特定页面上包含某个JS文件或2或特定脚本,我该怎么做。
我有铁轨 我收集的这个文件中的app / views / layouts / application.html.erb是我的网站/服务的基本模板,在那里我会放置所有可移动的部分。但是我偶尔会需要在特定页面上加载javascript文件。但它需要在jquery文件之后调用,因此在我想要加载的文件之前将jquery加载到内存中。所以我不确定如何接近这一点。在布局中的原因我有javascript加载器行,无论它究竟是什么我不记得但它的:默认不少,这意味着jquery和应用程序将默认从API告诉我加载。
这让我想到了另一个问题,那个最初设置rails服务器的人我们已经添加了一个文件到我想模仿的默认值,但不知道怎么做。
答案 0 :(得分:3)
content_for可能对您有所帮助,请查看包含该段代码的示例:<%= yield :script %>
或者,考虑一下如何允许JS代码检测它是否在正确的页面上开始执行(可能是在body标签上设置的类或id),并且只有在满足该条件时才执行。然后,您可以在第一页加载时将整个javascript集合压缩并缩小到用户的浏览器,从而提高网站性能。
答案 1 :(得分:3)
最简单的方法是将脚本文件包含在您需要的视图中。 jQuery已经在布局中加载了。 或者,您可以使用content_for,如ctcherry提到的那样。您可以在此处找到更详细的说明:Javascript Include Tag Best Practice in a Rails Application
另外,关于你的上一个问题,我不确定我是否理解正确,但你可以添加更多选项到以逗号分隔的javascript_include_tag:
javascript_include_tag :defaults, "my_other_file", "etc"
答案 2 :(得分:-1)
可用于此:
<head>
<title>My blog</title>
<%= yield(:head) -%>
</head>
从那里发送它:
<%- content_for(:head) do -%>
<%= javascript_include_tag :defaults -%>
<%- end -%>
这是一项很好的工作!