【问题标题】:Paperclip, set path outside of rails root folder回形针,在 rails 根文件夹之外设置路径
【发布时间】:2015-03-16 08:05:10
【问题描述】:

我有两个独立的 Rails 应用程序,比如 MyApp 和 MyAppAdmin。在 MyAppAdmin 中,可以使用回形针 gem 附加图像,这些图像应该在第一个应用程序 (MyApp) 上可用。 F.e.我可能会在 MyAppAdmin 中添加一个用户头像,它应该会显示在 MyApp 中。

如何设置指向通用“共享”文件夹的图像路径,这两个应用程序可以使用这些路径?

我尝试使用类似
path: "/tmp/shared"
在我的 config.yml 中,但它不起作用。它只是添加到默认的回形针路径(与“../temp/shared”等相对路径相同)。 https://github.com/thoughtbot/paperclip/blob/master/lib/paperclip/attachment.rb#L23

我也尝试添加类似
Paperclip::Attachment.default_options[:path] = '/tmp/shared/:class/:id_partition/:style.:extension'
没有运气到我的 development.rb 文件。

是否可以在实际的 rails 应用程序文件夹之外设置回形针中图像的路径?

*MyApp 使用 rails 3.2,MyAppAdmin - rails 2.3.18

【问题讨论】:

    标签: ruby-on-rails paperclip


    【解决方案1】:

    在您的情况下,选项“:path”和“:url”必须一起使用。我相信缺少的是您的网络服务器上的一些配置和 :url 配置。

    ":path" --> 告诉回形针文件在服务器文件系统中的位置。
    ":url" --> 告诉回形针如何确定要生成的 url。它是相对于网站 URL 的。

    因此,通过 WebServer 上的配置,您应该将 ":path" 所在的服务器文件夹映射到 rails app 文件夹结构下的虚拟目录。

    这个虚拟目录应该反映 ":url" 选项中的配置。

    例如,假设你做到了

    :path => "/tmp/shared/:class/:id_partition/:style.:extension"
    

    第一步在 Rails 应用下配置一个虚拟文件夹,名称为:

    MyNewVirtualFolder
    

    并将其指向“/tmp/shared”

    第二步配置

    :url => "/MyNewVirtualFolder/:class/:id_partition/:style.:extension"
    

    最后重新启动您的 Rails 应用程序。

    【讨论】:

    • 是的,我最终得到了类似的结果::url => "/images/shared/:class/:attachment/:basename.:extension" :path => "/home/user/:url" 所以你的答案是正确的,谢谢!
    猜你喜欢
    • 2011-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-27
    相关资源
    最近更新 更多