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

发布于 2024-09-15 15:12:47 字数 232 浏览 5 评论 0 原文

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

例如,vendor/plugins/myplugin/public/javascripts/myplugin.js。我可以通过 Rails 在 /javascripts/myplugin.js 上提供此功能吗?

我通过将文件从供应商/插件/______/public/*复制到public/*来使其工作,但这似乎是一个坏主意。

I have installed a plugin to my Rails app. The plugin has files in its public directory that I want to make available.

For example, vendor/plugins/myplugin/public/javascripts/myplugin.js. Can I make this available via Rails at /javascripts/myplugin.js?

I've got it working by copying the files from vendor/plugins/______/public/* to public/*, but that seems like a bad idea.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

岁吢 2024-09-22 15:12:47

我认为只有当你将插件放入引擎中时这才有效。引擎可以更深入地访问 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

I think this only works if you make your plugin into an engine. Engines can access deeper into the rails initialization process so they can add an additional static asset path.

Here is a snippet of my engine.rb file that does this:

module MoxieForum
  class Engine < Rails::Engine

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

I recently wrote a handy starting point for creating a rails 3 engine that has this and lots of other basic functionality built in:

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

少年亿悲伤 2024-09-22 15:12:47

对于rails 2.1,至少复制曾经是“唯一的方法”(我认为它可能仍然是,尽管你可以使用 mod_rewrite apache 模块来获取它们全部......)

with rails 2.1 at least copying used to be "the only way" (I think it probably still is, though you could use mod_rewrite apache module to get them all...)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文