首页 > 解决方案 > 为什么登录 Rails 应用程序后无法加载徽标?

问题描述

我的徽标在本地加载到我的 RoR 应用程序上。但是,当我登录时,每次都无法加载。但是,如果我重定向到同一页面,它将再次加载。我不确定我是否理解问题所在。

我的项目的链接可以在这里找到https://github.com/dlyons8/family-and-community

标签: rubyimageruby-on-rails-5

解决方案


无法加载徽标,因为在以用户身份成功登录后正在更改您的路径。会话控制器将用户重定向到/users/:user_id.

标签中的受影响src属性<img>包含“logo.png”,因此浏览器尝试获取/users/logo.png它不会成功。

你有两个选择:

1)将您的徽标更改为资产。这是资源的常用模式,例如当您更改徽标时,在以后的部署中会有很大帮助。移动logo.pngapp/views/layouts/application.html.erbapp/assets/images并在其中使用帮助程序:image_tag

<%= image_tag 'logo.png', alt: 'Logo' %>

这样,您将始终获得徽标的绝对路径 ( /assets/logo.png),而不必担心用户实际在哪里。

2) 将标签中的路径更改为徽标<img>的绝对路径 ( /logo.png),它将尝试获取正确的文件。

2) 解决方案会更容易,但是我强烈建议您与 Rails 中的Asset Pipeline取得联系,因为它确实有助于为您的网页处理静态资产。

此外,如果您遇到非加载资产,请始终检查浏览器的控制台。在谷歌浏览器中,您只需按下F12并切换到Console选项卡即可访问它,会出现一条红色错误消息,说明无法加载哪些资源以及原因。显示的完整 URL 通常有助于解决这些偷偷摸摸的问题。


推荐阅读