【问题标题】:Ruby on Rails: Do not use database for specific environmentRuby on Rails:不要将数据库用于特定环境
【发布时间】:2023-03-23 20:01:01
【问题描述】:

如何在特定环境中禁用数据库。我想要一个环境来纯粹提供不需要数据库的图像。不同的环境会做文件上传和管理。

我这样做的原因是因为我想从 images.example.com/image.jpg 提供图像并从 admin.example.com 管理它们。

非常感谢任何帮助。 谢谢。

【问题讨论】:

    标签: ruby-on-rails database activerecord environment-variables


    【解决方案1】:

    我认为您可以通过 Web 服务器在 Rails 应用程序之外执行此操作。如果您使用 nginx 或 VirtualHost 用于 apache,则可以创建另一个 server 配置。 nginx 的示例配置:

    server {
      server_name images.example.com;
      root /path_to_images_directory;
      location / {
        rewrite ^/([^\/]+\.css)$ /css/$1 break;
        rewrite ^/([^\/]+\.js)$ /js/$1 break;
        rewrite ^/([^\/]+\.(png|jpg|jpeg))$ /images/$1 break;
      }
    }
    

    【讨论】:

    • 我目前安装了Passenger,这就是为什么我使用两个虚拟主机配置了两个指向同一个文档根目录的环境。但是因为一个环境不同,我得到了 ActiveRecord::ConnectionNotEstablished 因为我没有在 database.yml 中设置数据库。
    • 你不需要乘客。例如,如果您将图像存储到public/uploads/images 目录中,只需将DocumentRoot 直接指向该目录即可。所以所有的图片都会直接通过网络服务器发送。
    • 很简单的解决方案,我怎么没看到。
    • 但是,要上传图片,您需要有第二个VirtualHost 和乘客:)
    猜你喜欢
    • 2014-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-11
    • 2012-01-09
    • 1970-01-01
    • 2021-11-23
    相关资源
    最近更新 更多