ruby-on-rails - 乘客未显示某些图像 Rails 3.2.11

标签 ruby-on-rails apache ubuntu paperclip passenger

好的,所以我在 CentOS 服务器上运行了 Ruby on Rails,它运行良好。目前正在尝试将相同的应用程序迁移到正在运行的 Ubuntu 服务器,除了一个特定的图像文件夹,我似乎无法弄清楚发生了什么。

我正在通过 Capistrano 进行部署,所以我正在部署到当前文件夹。这是我的 apache .conf 文件设置:

<Virtualhost *:80>
    ServerName myserver
   DocumentRoot  /var/www/folder/current/public
   <Directory /var/www/folder/current/public>
      Allow from all
      Options -Multiviews
   </Directory>
</VirtualHost>

这些文件存在于我的应用程序中(在 Assets /供应商下)。在构建或预编译或部署期间,我没有收到任何错误。尝试在新服务器上提供文件时,我收到以下消息:
Started GET "/system/vendors/logos/000/000/002/original/filename.png?1354897276" for 68.188.46.74 at 2013-01-25 00:51:37 +0000

ActionController::RoutingError (No route matches [GET] "/system/vendors/logos/000/000/002/original/filename.png"):
  actionpack (3.2.11) lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call'
  actionpack (3.2.11) lib/action_dispatch/middleware/show_exceptions.rb:56:in `call'

我已经尝试过权限更改,包括 777 tmp 文件夹(我通常不会这样做),只是想看看这是否会有所不同。

看起来系统 Assets 管道文件夹在我的共享目录中,但我没有看到指向它的符号链接(symbolic link),就像我看到日志目录一样。所以我尝试创建一个指向它的符号链接(symbolic link),但没有做任何事情。

我不知所措。有什么建议么?

编辑 1/25

当我发布这个时,我没有注意到这是一个回形针上传的图像,这就是这些图像在系统路径中的原因。所以我通过模型中定义的 logo 属性中的 View 调用它们,如下所示:
  has_attached_file :logo

在我看来,我通过以下方式调用它:
          <%= image_tag(vendor.logo.url, :class => 'rounded'); %>

同样,这适用于其他两台服务器,因此迁移正在清除影响它,我认为它可能与权限有关?

ImageMagick 安装在服务器上。

最佳答案

这些文件没有被提供,因为 Rails 不会提供来自 app/assets 的文件。 , lib/assetsvendor/assetsproduction 中运行时的目录环境。

该文件确实应该位于 public 中。目录,位于请求指定的路径。通过将其放置在此处,您将获得额外的好处,即该文件将由运行Passenger (Apache/Nginx) 的Web 服务器提供服务,而不是Rails。这意味着请求将比 Rails 提供的请求快得多。

请确保您希望提供的所有静态文件都位于 public目录及其子目录以获得最大速度。

关于ruby-on-rails - 乘客未显示某些图像 Rails 3.2.11,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14513726/

相关文章:

java - 如何使用 Java 获取 Ubuntu 版本?

ruby-on-rails - feedzirra windows 最新限制版本问题

apache - 如何重写一部分 url (/api/something)?

php - 如何将 PHP 服务器 API 从 CGI/FastCGI 更改为 Apache 2.0 处理程序?

node.js - Node 错误 npm ERR!在 Angular 项目中使用 npm install 时从未调用 cb()

linux - 如何杀死在ubuntu后台运行的程序?

ruby-on-rails - Elasticsearch需要*所有*关联进行映射?

ruby-on-rails - 如何使用 Controller A 访问表 B(在同一数据库中)?

ruby-on-rails - Rails 教程 : RSpec test decoupling

c - 基本 Apache 模块中的链接器错误