我已经在我的Rails应用程序中安装了一个插件。该插件在其公共目录中包含我想要提供的文件。
例如,vendor / plugins / myplugin / public / javascripts / myplugin.js。我可以通过/javascripts/myplugin.js上的Rails提供这个吗?
我通过将文件从vendor / plugins / ______ / public / *复制到public / *来实现它,但这似乎是一个坏主意。
答案 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模块来获取所有...)