Ruby on rails JavaScript正在我的Rails应用程序上秘密运行
我在routes文件中的唯一一行是:Ruby on rails JavaScript正在我的Rails应用程序上秘密运行,ruby-on-rails,Ruby On Rails,我在routes文件中的唯一一行是: root :to => 'spikes#index' 在Javascript资产中,我有一个简单的函数,如下所示: spike.js文件: $(function(){ alert("WAT"); document.write("abc"); }); <!DOCTYPE html> <html> <head> <title>D3Spike</title> <
root :to => 'spikes#index'
在Javascript资产中,我有一个简单的函数,如下所示:
spike.js文件:
$(function(){
alert("WAT");
document.write("abc");
});
<!DOCTYPE html>
<html>
<head>
<title>D3Spike</title>
<%= stylesheet_link_tag "application", :media => "all" %>
<%= javascript_include_tag "application" %>
<%= csrf_meta_tags %>
</head>
<body>
<%= yield %>
</body>
</html>
在视图->尖峰->index.html.haml文件中,我什么都没有!它是空的。
我以前有以下代码,但我删除了它:
= javascript_include_tag 'spike'
但当我运行Rails应用程序时,我仍然会看到浏览器上写着警告和“abc”
它是从哪里来的?到底是什么
更新:这也是我的application.html.erb文件:
$(function(){
alert("WAT");
document.write("abc");
});
<!DOCTYPE html>
<html>
<head>
<title>D3Spike</title>
<%= stylesheet_link_tag "application", :media => "all" %>
<%= javascript_include_tag "application" %>
<%= csrf_meta_tags %>
</head>
<body>
<%= yield %>
</body>
</html>
D3Spike
“全部”%>
您可能在app/views/layouts/application.html.erb
中有一个
标签(或者可能是.haml
,而不是.erb
),它会包装您的所有页面。如果你将其取出一秒钟,你可能会看到警报消失
有两件事需要理解:1)您向我们展示的JavaScript代码只是通过被包含(将其粘贴到浏览器的控制台中以了解我的意思)来运行的;2)在Rails中,正常的行为是所有JavaScript始终被包含,这可能不是你所期望的。hmm我用那个文件的内容更新了我的问题。你看到里面有什么可疑的东西吗?谢谢。不,这很正常。取出
,保存文件并刷新页面。我还在回答中添加了一些可能对您有所帮助的细节。好的,谢谢,我从中取出了avascript\u include\u标记“应用程序”部分,是的,现在它没有被调用。但是现在在我的页面的haml中,我发布了这样一条消息:现在它应该调用什么?因为它没有:=javascript\u include\u标记'spike',我不会将javascript include放在单独的页面上。我会坚持Rails的默认设置,即在application.html.erb
中有一个javascript\u include\u标记
,并使它只在需要的地方调用javascript。