【问题标题】:Precompiling assets that are created by model预编译模型创建的资产
【发布时间】:2013-10-23 19:07:34
【问题描述】:

我有一个关于如何在生产环境中使用预编译资产的问题。作为模型的一部分的一般文件附件呢?例如,我有模型“事件”。您可以对模型有 n 个附件,它们可以是您想要的任何文件。通常它们是图像文件或 PDF 文件,但也可以是 Excel 文件。这些文件将显示为用户的链接,用户可以单击链接打开文件。附件文件与标准资产一起以下列方式存储在 /assets 目录中:

/assets
  /images
  /javascripts
  /stylesheets
  /attachments
    /events
      /11
        poster.jpg
        event-details.pdf

现在据我了解,当我运行预编译方法时,Sprockets 会生成要提供的文件的 gzipped/MD5 版本……我该如何处理这些附件文件?如果我运行预编译方法,所有内容都会被压缩……但是当我通过 Web 界面进一步添加/删除附件时,有些会被压缩,而另一些则不会。处理这个问题的最佳方法是什么?

【问题讨论】:

  • 我以前从未见过这样的实现。那么,在上面的示例中,ID 为 11 的事件记录有两个附件?您如何将文件保存在资产目录中?您是否手动创建这些文件?我只是想知道你是否可以只使用上传附件等。解决方案似乎有点不同......
  • 我创建了自己的单独模型来处理文件上传。基本上,每当我将“has_attachments_dir 'attachments/events'”放入我的事件模型中时,'/assets/attachments/events/[id]' 中存在的任何文件都可以作为模型实例的附件使用。与这个特殊模型无关,我还将我的 Wine 模型的回形针附件照片存储在 /assets/images/pages/wines/:style/:wine_name
  • 我明白了。如果您坚持,那么我建议您使用公用文件夹而不是资产。
  • 那么为什么回形针示例显示人们使用 /assets 文件夹来存储附件?
  • 我不确定...stackoverflow.com/questions/11073650/… 可以帮助你。

标签: ruby-on-rails ruby-on-rails-4 sprockets precompile


【解决方案1】:

我放弃了想办法解决这个问题,只是将所有附件和回形针附件设置为物理放置在 /public 目录中。从我的角度来看,这消除了压缩资产的好处,但无论如何。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-28
    相关资源
    最近更新 更多