如何发布vendor / _____ / public / *文件?

时间:2010-08-19 15:07:10

标签: ruby ruby-on-rails-plugins

我已经在我的Rails应用程序中安装了一个插件。该插件在其公共目录中包含我想要提供的文件。

例如,vendor / plugins / myplugin / public / javascripts / myplugin.js。我可以通过/javascripts/myplugin.js上的Rails提供这个吗?

我通过将文件从vendor / plugins / ______ / public / *复制到public / *来实现它,但这似乎是一个坏主意。

2 个答案:

答案 0 :(得分:3)

我认为只有将插件插入引擎才有效。引擎可以更深入地访问rails初始化过程,以便他们可以添加额外的静态资产路径。

以下是我的engine.rb文件的片段:

module MoxieForum
  class Engine < Rails::Engine

    initializer "static assets" do |app|
      app.middleware.use ::ActionDispatch::Static, "#{root}/public"
    end
  end
end

我最近写了一个方便的起点来创建一个rails 3引擎,它具有内置的许多其他基本功能:

http://keithschacht.com/creating-a-rails-3-engine-plugin-gem

答案 1 :(得分:0)

使用rails 2.1至少复制曾经是“唯一的方法”(我想它可能仍然是,虽然你可以使用mod_rewrite apache模块来获取所有...)