【问题标题】:Action Text attachments not working on production操作文本附件不适用于生产
【发布时间】:2021-01-27 02:27:42
【问题描述】:

我们目前正在使用 Active Storage 将头像图像上传到 Amazon S3,这在本地和生产环境中都表现出色

class User < ApplicationRecord
  has_one_attached :avatar
end

我现在正在尝试使用 Action Text,并按照 Rails Guides 上的说明进行操作,这在 localhost 上运行良好

class Course < ApplicationRecord 
  belongs_to :user
  has_rich_text :content
end

然而,当我部署到生产环境时,富文本格式有效,但附件没有上传到 S3,这让我感到惊讶,因为我认为它使用的活动存储凭据与我们用于上传头像图像的活动存储凭据相同。奇怪的是,它使用文件名填充active_storage_blobs 表,即使它们没有被上传或被active_storage_attachments 引用。

有人可以帮忙吗?

【问题讨论】:

标签: ruby-on-rails activerecord ruby-on-rails-6 rails-activestorage actiontext


【解决方案1】:

原来默认是在操作文本中直接上传(与 Active Storage 附件不同),并且在 S3 上设置 CORS 后它可以工作

【讨论】:

  • 那么您是否必须在某处将直接上传设置为 false,或者您仅在 S3 上调整了 CORS?
  • 我不知道如何关闭直接上传,所以我们最终在 S3 上调整了 CORS。到目前为止一切正常
【解决方案2】:

要在 AWS 上配置 CORS,您需要 change the settings for your production bucket

一个 JSON 格式的 CORS 配置示例如下所示:

[
    {
        "AllowedHeaders": [
            "*"
        ],
        "AllowedMethods": [
            "PUT",
            "POST",
            "DELETE"
        ],
        "AllowedOrigins": [
            "https://www.example.com"
        ],
        "ExposeHeaders": []
    }
]

https://www.example.com 是 Rails 应用的 URL。确保您允许所有来源(您可以通过将 URL 替换为 * 通配符来做到这一点)。

【讨论】:

    猜你喜欢
    • 2016-11-08
    • 1970-01-01
    • 2021-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-07
    • 2019-06-24
    • 1970-01-01
    相关资源
    最近更新 更多