1

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

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

  • vendor/assets/javascripts
  • app/assets/javascripts
  • lib/<gem-name>/assets/javascripts

但它们都不起作用。我只是在我的文件中加载文件时收到此错误消息application.js

couldn't find file 'my_gem' with type 'application/javascript'

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

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

2 回答 2

1

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

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

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

于 2016-01-12T05:40:32.743 回答
1

我们之前创建了一个使用资产的 gem

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

最重要的是,您需要将此文件添加到资产路径(我们使用引擎):

#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
于 2016-01-12T12:57:13.270 回答