ruby - 为什么登录 Rails 应用程序后无法加载徽标?
问题描述
我的徽标在本地加载到我的 RoR 应用程序上。但是,当我登录时,每次都无法加载。但是,如果我重定向到同一页面,它将再次加载。我不确定我是否理解问题所在。
我的项目的链接可以在这里找到https://github.com/dlyons8/family-and-community。
解决方案
无法加载徽标,因为在以用户身份成功登录后正在更改您的路径。会话控制器将用户重定向到/users/:user_id
.
标签中的受影响src
属性<img>
包含“logo.png”,因此浏览器尝试获取/users/logo.png
它不会成功。
你有两个选择:
1)将您的徽标更改为资产。这是资源的常用模式,例如当您更改徽标时,在以后的部署中会有很大帮助。移动logo.png
到app/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 通常有助于解决这些偷偷摸摸的问题。
推荐阅读
- python - sklearn One Hot Encoder 没有拟合
- image - 在 Linux 上从 mp4 中提取、获取 jp(e)g 或 png 文件格式
- cypress - 如何使用赛普拉斯检查标头中的脚本?
- python - 你能从字符串中间大小不同的输入中挑选出一块吗?
- python - Python - 如何将 GridSearchCV 变量用作字符串
- javascript - 是否可以像使用 graphql 查询一样仅查询 DataStore 查询中的某些字段?
- debugging - VSCode 调试:访问 chrome 已经打开的 tabs-urls
- javascript - 客户端文件未正确导入 discordjs
- c# - 具有 Linq 和默认值的多个左连接
- rest - 如何在docker上的pyspark中提交一个rest api jar