为什么Rails Asset Pipeline不加载我的js文件?

2026-04-10 07:051阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计509个文字,预计阅读时间需要3分钟。

为什么Rails Asset Pipeline不加载我的js文件?

如果我将它包含在视图中本身,并且如果我将它直接包含在Application.js文件中,则代码可以正常工作。但如果我将它包含在assets/javascripts/mailers.js文件中,它将无效。告诉我我犯错了什么。

为什么Rails Asset Pipeline不加载我的js文件?

如果我将它包含在视图本身中,并且如果我将它直接包含在Application.js文件中,则该代码可以正常工作,但如果我将它包含在assets / javascripts / mailers.js文件中,它将无效.告诉我我做错了什么,谢谢.

function myFunction(val) { if (val.length == 10) { document.getElementById('search_button').focus();}};

也许我错误地称它为人?这是视图中的代码:

<%= text_field_tag :search_mailer, nil, autofocus: true, onkeyup: "myFunction(this.value)" %>

还有什么我必须添加到上面包含的mailers.js文件中吗?因为这就是该文件中的所有内容. mailers.js文件中唯一的代码是:

function myFunction(val) { if (val.length == 10) { document.getElementById('search_button').focus();}}; 您可能错过了将文件包含在清单文件中.清单文件将assets / javascripts目录中的所有.js文件预编译为一个大文件.这是您的应用程序上运行的文件.如果你不在那里你的.js文件,它不包括在内,这就是没有任何反应的原因.

包含文件的正确方法是:

//= require mailers.js

在您的application.js文件中.更重要的是,默认情况下你有

//= require_tree .

这需要来自assets / javascript路径的所有js文件.

如果你想专门为视图包含它,请删除tihs:

<%= javascript_include_tag "mailers", "data-turbolinks-track" => true %>

为此,如果预编译为false,则必须单独添加该文件:
在config / initializers / assets.rb中

Rails.application.config.assets.precompile += %w( mailers.js )

要么
在config / application.rb中

config.assets.precompile += %w( mailers.js )

问题可能是,如果您的.js和.coffeescript文件具有相同的名称,则应用程序会预编译错误的文件.你可以尝试跑步

rake assets:clean rake assets:precompile

然后再次运行服务器.

本文共计509个文字,预计阅读时间需要3分钟。

为什么Rails Asset Pipeline不加载我的js文件?

如果我将它包含在视图中本身,并且如果我将它直接包含在Application.js文件中,则代码可以正常工作。但如果我将它包含在assets/javascripts/mailers.js文件中,它将无效。告诉我我犯错了什么。

为什么Rails Asset Pipeline不加载我的js文件?

如果我将它包含在视图本身中,并且如果我将它直接包含在Application.js文件中,则该代码可以正常工作,但如果我将它包含在assets / javascripts / mailers.js文件中,它将无效.告诉我我做错了什么,谢谢.

function myFunction(val) { if (val.length == 10) { document.getElementById('search_button').focus();}};

也许我错误地称它为人?这是视图中的代码:

<%= text_field_tag :search_mailer, nil, autofocus: true, onkeyup: "myFunction(this.value)" %>

还有什么我必须添加到上面包含的mailers.js文件中吗?因为这就是该文件中的所有内容. mailers.js文件中唯一的代码是:

function myFunction(val) { if (val.length == 10) { document.getElementById('search_button').focus();}}; 您可能错过了将文件包含在清单文件中.清单文件将assets / javascripts目录中的所有.js文件预编译为一个大文件.这是您的应用程序上运行的文件.如果你不在那里你的.js文件,它不包括在内,这就是没有任何反应的原因.

包含文件的正确方法是:

//= require mailers.js

在您的application.js文件中.更重要的是,默认情况下你有

//= require_tree .

这需要来自assets / javascript路径的所有js文件.

如果你想专门为视图包含它,请删除tihs:

<%= javascript_include_tag "mailers", "data-turbolinks-track" => true %>

为此,如果预编译为false,则必须单独添加该文件:
在config / initializers / assets.rb中

Rails.application.config.assets.precompile += %w( mailers.js )

要么
在config / application.rb中

config.assets.precompile += %w( mailers.js )

问题可能是,如果您的.js和.coffeescript文件具有相同的名称,则应用程序会预编译错误的文件.你可以尝试跑步

rake assets:clean rake assets:precompile

然后再次运行服务器.