Rails public 文件夹中的 4 个图像未在 Apache 开发中加载
Rails 4 images in public folder are not loading on Apache development
我是 rails 的新手。我正在开发一个社交网络示例应用程序。我已经设法手动上传用户的个人资料图片(通过将上传到 /tmp/image 的图像复制到 public 文件夹 - public/images/tmp/image)并保存路径到数据库为 avatar_url.
在我使用的个人资料视图中
<%= image_tag(@userinfo.avatar_url, :alt=>"Avatar image")%>
并在 运行 服务器上 运行 时获取图片。
但在那之后,我通过设置 RailsEnv development 将应用程序部署在开发环境中的 passenger 中。之后图像不加载。我试图去myip:80/public/images/tmp/image,它给出了路由错误。
在网上搜索后发现在production.rb中加入config.serve_static_assets = true
即可解决生产中的问题。但对我没有用,因为它还声明静态文件将默认用于开发。为了再次确认问题,我启动了 rails 服务器并打开了 localhost:3000/profile,图像在那里并且没有在 myip:80/profile.
中获取图像
所以我需要添加任何其他配置。还是我不应该这样做。
选项 config.serve_static_assets = true
告诉 rails 为您的应用程序提供静态资产,但该工作实际上应该留给 Apache。
您的问题听起来与您的 Apache 配置比 rails 更相关。
我会看一下 tutorial 如何配置 Apache 和 Passenger 以确保您的环境设置正确。
public 文件夹中的任何内容都应由 Web 服务器提供。但是 myip:80/public/images/tmp/image 不是有效路径。您还需要在文件名末尾加上扩展名。
终于,我找到了解决问题的方法。分享到这里
问题其实是因为权限问题。图片将在表单提交时的根临时目录中创建。然后我将图像从临时文件夹复制到 public 文件夹。因此它只有读取权限。部署后,图像出现 returns 403 forbidden 错误。
我用过,
FileUtils.chmod 775, target
设置权限。之后效果很好
我是 rails 的新手。我正在开发一个社交网络示例应用程序。我已经设法手动上传用户的个人资料图片(通过将上传到 /tmp/image 的图像复制到 public 文件夹 - public/images/tmp/image)并保存路径到数据库为 avatar_url.
在我使用的个人资料视图中
<%= image_tag(@userinfo.avatar_url, :alt=>"Avatar image")%>
并在 运行 服务器上 运行 时获取图片。
但在那之后,我通过设置 RailsEnv development 将应用程序部署在开发环境中的 passenger 中。之后图像不加载。我试图去myip:80/public/images/tmp/image,它给出了路由错误。
在网上搜索后发现在production.rb中加入config.serve_static_assets = true
即可解决生产中的问题。但对我没有用,因为它还声明静态文件将默认用于开发。为了再次确认问题,我启动了 rails 服务器并打开了 localhost:3000/profile,图像在那里并且没有在 myip:80/profile.
所以我需要添加任何其他配置。还是我不应该这样做。
选项 config.serve_static_assets = true
告诉 rails 为您的应用程序提供静态资产,但该工作实际上应该留给 Apache。
您的问题听起来与您的 Apache 配置比 rails 更相关。
我会看一下 tutorial 如何配置 Apache 和 Passenger 以确保您的环境设置正确。
public 文件夹中的任何内容都应由 Web 服务器提供。但是 myip:80/public/images/tmp/image 不是有效路径。您还需要在文件名末尾加上扩展名。
终于,我找到了解决问题的方法。分享到这里
问题其实是因为权限问题。图片将在表单提交时的根临时目录中创建。然后我将图像从临时文件夹复制到 public 文件夹。因此它只有读取权限。部署后,图像出现 returns 403 forbidden 错误。
我用过,
FileUtils.chmod 775, target
设置权限。之后效果很好