我应该在哪里存储我的图像用于我的RoR网站?

时间:2014-06-18 00:53:01

标签: css ruby-on-rails html5

我目前将我的图像存储在PhotoBucket.com上,并使用图片网址在我的RoR应用程序中访问它们。这是不好的,我应该直接在应用程序中将它们存储在我的资源文件夹中吗?想知道每个人是否有利弊。

谢谢!

3 个答案:

答案 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中。由于它们的资产是半依赖关系,因此需要将它们存储在应用程序的编译过程中;除非他们进入资产管道,否则不会发生这种情况

-

<强>上传

如果您希望允许用户使用upload个文件,则需要能够处理从前端到后端的文件传输

  

虽然Rails 可以执行此操作(使用asset precompilation),但您将成为   最好使用File classPaperclip

之类的内容

这些允许您将上传内容存储在第三方存储库中,例如s3Dropbox,最重要的是它们允许您处理传输,确保文件的结构是保持正确。

-

<强>存储

如果您希望将资产存储在某种CDN中,您可能希望使用Carrierwave gem,或设置cloudfront或其他内容。

rails的技巧之处在于您可以相对简单地更改资产主机:

#config/environments/production.rb
config.asset_host = "your_asset_host"

您可以阅读有关asset_sync

的更多信息