我目前将我的图像存储在PhotoBucket.com上,并使用图片网址在我的RoR应用程序中访问它们。这是不好的,我应该直接在应用程序中将它们存储在我的资源文件夹中吗?想知道每个人是否有利弊。
谢谢!
答案 0 :(得分:1)
将它们与所有其他静态资产一起存储在您的git存储库中。
随着网站的增长,请查看Cloudfront或其他CDN以管理静态资产。
答案 1 :(得分:0)
在向我的MVC视图添加照片时,我自己使用了imgur网址。但是,就生产而言,我可能会建议您使用服务器上的照片副本进行部署-heroku,azure,您自己的自定义Web服务器。而不是依赖于页面从另一个Web服务器提取照片,在您的 Web服务器上已经拥有该照片并没有什么坏处。如果这是有道理的。它就在那里 ...但就像我说的那样。如果有人对此发表评论并表示无关紧要 - 将它们存储在服务器上的文件系统中或使用其他内容则表示其偏好。我试着告诉你我的想法以及我会做什么。
快乐的编码。
答案 2 :(得分:0)
有两件事要看:
-
<强>资产强>
assets
是您的应用程序依赖的文件来运行
它们是您布局中使用的图像&amp;视图 - 基本上是静态文件;您应用的不同部分所需:
资产管道提供了连接和缩小的框架 压缩JavaScript和CSS资产。它还增加了写作能力 这些资产用其他语言和预处理器如 CoffeeScript,Sass和ERB。
如果您希望在应用中使用图片作为CSS,那么您确实需要将它们存储在app/images
中 - 因为这会为您提供 {{3}的所有特权} ,包括:
asset_pipeline
&amp;其他asset_path
最重要的是,如果您希望自己的应用正确构建,则需要将图片资源存储在asset pipeline
中。由于它们的资产是半依赖关系,因此需要将它们存储在应用程序的编译过程中;除非他们进入资产管道,否则不会发生这种情况
-
<强>上传强>
如果您希望允许用户使用upload
个文件,则需要能够处理从前端到后端的文件传输
虽然Rails 可以执行此操作(使用
之类的内容asset precompilation
),但您将成为 最好使用File
class或Paperclip
这些允许您将上传内容存储在第三方存储库中,例如s3
或Dropbox
,最重要的是它们允许您处理传输,确保文件的结构是保持正确。
-
<强>存储强>
如果您希望将资产存储在某种CDN中,您可能希望使用Carrierwave
gem,或设置cloudfront
或其他内容。
rails的技巧之处在于您可以相对简单地更改资产主机:
#config/environments/production.rb
config.asset_host = "your_asset_host"
您可以阅读有关asset_sync