在我的rails应用程序中,在assets / javascripts的javascript文件中,第一行是
console.log("This javascript file is included")
。在我的application.html中,我将其包含在头部之后:
<script type = "text/javascript">
console.log("Logging from the application.html")
</script>
我没有在我的任何视图中明确包含javascript文件,但控制台会打印:
This javascript file is included.
Logging from the application.html
答案 0 :(得分:1)
你是application.js可能看起来像:
// = require_tree。
“require_tree指令告诉Sprockets以递归方式将指定目录中的所有JavaScript文件包含到输出中。必须相对于清单文件指定这些路径。您还可以使用require_directory指令,该指令仅包含目录中的所有JavaScript文件指定,没有递归。“
答案 1 :(得分:0)
听起来您的某个视图或布局中包含<% javascript_include_tag :all %>
,这会导致public/javascripts
中的所有文件都被包含在内。 Documentation is here
有问题的文件也可能已添加到config.action_view.javascript_expansions[:defaults]
中的config/application.rb
,如果您某处<% javascript_include_tag :defaults %>
,则会导致该文件被加载。
答案 2 :(得分:0)
您的layout / application.html.erb基于您的任何视图(请参阅yield instuction)。在任何视图(任何控制器#方法调用)rails渲染布局此当前视图文件的yield。显而易见,js "Logging from the application.html"
在每个刷新页面(不是AJAX)上运行。
关于包含外部JS,请参阅上一篇文章。如果你想获得特定页面的js,请阅读Best way to add page specific javascript in a Rails 3 app?