我的徽标会在本地RoR应用程序中加载。但是,当我登录时,每次都无法加载。但是,如果我重定向到同一页面,它将再次加载。我不确定我是否理解问题所在。
指向我的项目的链接可以在这里https://github.com/dlyons8/family-and-community中找到。
无法加载徽标,因为在以用户身份成功登录后,您的路径已更改。会话控制器将把用户重定向到/users/:user_id
。
src
标记中的受影响的<img>
属性包含“ logo.png”,因此浏览器尝试获取不会成功的/users/logo.png
。
您有两个选择:
[1)将徽标更改为资产。这是资源的常用模式,例如,在更改徽标时,对以后的部署有很大帮助。将logo.png
移至app/assets/images
,然后在app/views/layouts/application.html.erb中使用image_tag
帮助器:
<%= image_tag 'logo.png', alt: 'Logo' %>
这样,您将始终获得徽标(/assets/logo.png
)的绝对路径,而不必担心用户实际在哪里。
<img>
标记中的2]更改路径为徽标(/logo.png
)的绝对路径,它将尝试获取正确的文件。
2)解决方案会更容易,但是我强烈建议您与Rails中的Asset Pipeline联系,因为它确实对处理网页的静态资产有很大帮助。
此外,如果遇到非加载资产,请始终检查浏览器的控制台。在Google Chrome浏览器中,只需按F12
并切换到Console
标签即可找到它,将出现红色错误消息,提示无法加载哪些资源以及原因。显示的完整URL通常有助于解决这些问题。