如何从 rails 插件加载 javascript 文件

How to load javascript file from rails plugin

我正在尝试创建一个插件,它应该公开一个 javascript 文件,但我无法在我的 rails 5 应用程序中加载它。

在我的 gem 中,我尝试将名为 my_gem.js 的 javascript 文件添加到

但其中 none 有效。我在 application.js

中加载文件时收到此错误消息
couldn't find file 'my_gem' with type 'application/javascript'

这就是我将 plugin/gem 加载到我的 rails 项目中的方式

gem "my-gem", path: "~/projects/my-gem"

你必须告诉Rails编译my_gem.js。您可以在初始化程序、application.rb 或环境文件中执行此操作。

  Rails.application.config.assets.precompile += ["my_gem.js"]

我建议将源文件保存在 ~/projects/my-gem/app/assets/javascripts/my_gem.js

我们 created a gem which utilizes assets before.

您需要在 gem 目录树中创建一个 app/assets/javascripts/my_gem 文件夹,您将在其中放置 my_gem.js 文件。

最重要的是,you need to add this file to the asset path(我们使用引擎):

#lib/my_gem.rb
module MyGem
   class Gem < Rails::Engine
      config.assets.precompile += %w(my_gem/my_gem.js) 
   end
end

这将允许文件单独使用,或作为您的应用程序的一部分:

#app/assets/javascripts/application.js
//= require my_gem/my_gem