【问题标题】:Unable to access image on live site?无法访问实时站点上的图像?
【发布时间】:2016-05-05 16:15:45
【问题描述】:

这是一个简单的“关于我们”页面,由 db:seed 生成,我尝试过 img src="public/assets/image.png"img src="/assets/image.png",但都不起作用。

Localhost:3000 能够显示图像。但是,当我将它上传到我的 AWS EC2 服务器时它不起作用。

它在 nginx 上运行。

我用过以下:

Filezilla 上传图片到 project/app/assets/images/ 和 project/public/assets/

终端/ssh 到 rake db:seed 以重新创建关于我们的页面。
终端/ssh 到sudo service nginx restart

我正在尝试找到我通过 filezilla 添加的 image.png。终端中的 Filezilla 和 ls 目录表明它存在,但我很难找到它的 url。

我不太确定安全问题。

【问题讨论】:

  • 可能有很多问题。你能提供更多细节吗?它可能是本地防火墙、AWS 安全组或该实例上的错误或错误设置
  • 由于格式问题编辑了主帖。

标签: html ruby-on-rails amazon-web-services nginx


【解决方案1】:

如果您在生产中使用资产管道,那么您必须使用资产管道助手(image_tagimage_pathasset_path)来正确引用您的资产:

假设image.pngapp/assets/images/image.png 存在:

然后您将使用image_tag 帮助器来引用image.png

= image_tag "image.png"

这将对应于以下 HTML 标记:

<img src="<%=image_path("image.png")%>">

注意image_path("filename") 映射到asset_path("images/filename")

<img src="<%=asset_path("images/image.png")%>">

【讨论】:

  • 我很难在这个烂摊子中使用 image_tags,我应该怎么做才能把它挤进这个烂摊子? i.imgur.com/IbNhc1S.png / i.imgur.com/Zkh90Sj.png
  • 为什么要在数据库中存储 DOM 内容?我不建议这样做,因为如果您想更改视图中的资产/样式,这将是一个巨大的负担。
  • 我们为该网站聘请了一名外包开发人员,我只需要在营销之前清理该网站。
  • 好的,知道了。根据您粘贴到图像中的代码中的public/assets/images/icon_buy.png url,您需要在public 文件夹中创建一个名为public/assets/images/icon_buy.png 的文件夹。是的,这是一个名为 public 的文件夹,嵌套在您现有的 public 文件夹中,因此在您的应用程序目录中,这将是:public/public/assets/images/icon_buy.png。还要确保config.serve_static_files = true 中的production.rb(或等效项)。这实际上只是一个短期解决方案,我会认真考虑在不久的将来重构您的资产管理。
  • 另外,我不确定它是否重要,但它在 .html.slim 而不是 .html.erb 我更改了 public/assets/images/icon_buy.png 以尝试解决图片问题,原来是空的。
【解决方案2】:

确保您的图片网址正确并完成上传到服务器

【讨论】:

    猜你喜欢
    • 2011-09-09
    • 2019-05-20
    • 2012-05-02
    • 2020-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-09
    相关资源
    最近更新 更多