2012-04-29 42 views
0

奇怪的是,我无法关闭JavaScript文件中的javascript.js文件,这些文件不是assets/javascripts目录中的application.js文件。举例来说,如果我提出一个新的Rails 3.2.1应用程序,并插入以下内容:Rails 3.2.1资产目录中的javascripts无法正常工作

index.html.erb:

<%= link_to "click", "javascript:", :onclick => "call_function();" %> 

和我的功能到一个JavaScript文件 “anyscript.js”:

function call_function() { 
    alert("hello2"); 
} 

只有javascript被放入application.js文件而不是其他任何地方时,alert函数才会工作。我的application.js文件有require_tree。所以它应该加载目录中的所有脚本。但是如果函数在一个单独的文件中,它就不能工作。

我可以把所有的javascript放在应用程序文件中,但这显然不理想。任何人遇到这个问题?

+0

你发现哪里出了什么问题?我有完全相同的问题... – rassom

回答

0

确保目录中的脚本已正确加载,并且您的require_tree命令是正确的。在开发模式下,验证相关脚本是否已加载。如果是,它会在链接被点击时运行。只有理由不会是如果它超出范围或未定义。

+0

感谢您的回应 - 我如何验证脚本加载?它显示在浏览器的源代码中,奇怪的是,当代码在单独的文件中时,似乎没有任何代码可以工作。 –

+0

在源文件中显示应该是足够的。尝试在脚本中添加一条警报语句,以查看它在读取时是否触发。也可以尝试从浏览器的JavaScript调试器中调用该函数。 – achinda99

+0

所以使用萤火虫,我发现我的其他脚本没有加载。我正在使用// = require_tree。包括我所有的js文件,但我想这不起作用。 –

0

好的,你确定anyscript.js文件包含在JS清单文件中,a.k.a application.js?

+1

只要正确使用require_tree,就不需要包含该文件。 – achinda99

+0

我有// = require_tree。那里加载当前目录中的所有文件。但是,部署时,文件内的代码似乎不起作用。 –

+0

我不能正确使用require_tree吗?它不应该只是// = require_tree。 –