我正在使用Rails 4.2.3并尝试在public/404.html
中自定义404错误页面。如何包含资产管道中的图像?
有一个excellent post如何构建动态自定义错误页面。但是,如上所述,它需要对设置进行大量更改,作为初学者,我还没准备好。我想做的就是在我的404页面中包含2个资产管道中的图像。有一个简单的方法吗?
答案 0 :(得分:6)
如果您希望错误页面使用资产管道中的图像,那么您有两个选择:
由于你现在排除了选项#1,我认为猴子补丁是要走的路。在您的应用中安装non-stupid-digest-assets gem。这将修补资产管道,以便生成非指纹资产(除了指纹资产)。
# Gemfile
gem "non-stupid-digest-assets"
当然,不要忘记:
$ bundle install
然后在404.html
中,只需将资产称为静态文件,如下所示:
<img src="/assets/my-image.png">
这假设实际图像存储在项目中:
app/assets/images/my-image.png
答案 1 :(得分:2)
将图像添加到公共文件夹。
使用公共404/500 html页面上图像的根相对路径。
<img src="/my-logo.png"/>
答案 2 :(得分:1)
请注意,任何人都可以看到public
文件夹的内容。
按照惯例,我会创建assets
文件夹(如果你还没有),然后是images
和stylesheets
。
并创建常规的html页面
- app
...
- public
- 404.html
- images
- image1.jpg
- image2.jpg
- stylesheets
- style.css
然后在你的404.html
中,你会像这样引用它:
<img src="./assets/images/image1.jpg" alt=""/>
答案 3 :(得分:0)
在新应用程序中,未找到的路由将定向到public/404.html
中的静态html页面。正如您所发现的那样,这是一个.html
而不是.html.erb
文件,这意味着您必须做一些花哨的东西来访问您的资产管道。
如果您不想遇到创建动态页面的麻烦,最简单的方法是将资产管道中的两个图像复制到public/assets
(或子目录)中,然后包括他们:
<img src="assets/image.jpg">
*您也可以使用符号链接,但根据生产服务器的设置方式可能会出现问题。
答案 4 :(得分:-1)
在您的404.html添加...
<head>
<link data-turbolinks-track="true" href="/assets/application.css" media="all" rel="stylesheet" />
<script data-turbolinks-track="true" src="/assets/application.js"></script>
</head>
<body>
<img src="simple.gif">
</body>