【发布时间】: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