error pages
Some checks failed
/ Run tests (push) Failing after 1m19s
/ Run system tests (push) Failing after 1m20s
/ Build, push and deploy image (push) Has been skipped

This commit is contained in:
david 2024-11-11 07:21:55 +01:00
parent 169f8bc1bd
commit 1afb36799a
41 changed files with 342 additions and 261 deletions

31
.gitignore vendored
View file

@ -43,3 +43,34 @@
.build_version .build_version
/core* /core*
.ruby-lsp/* .ruby-lsp/*
public/400.html
public/401.html
public/402.html
public/403.html
public/404.html
public/405.html
public/406.html
public/407.html
public/408.html
public/409.html
public/410.html
public/411.html
public/412.html
public/413.html
public/414.html
public/415.html
public/416.html
public/417.html
public/422.html
public/423.html
public/424.html
public/426.html
public/500.html
public/501.html
public/502.html
public/503.html
public/504.html
public/505.html
public/507.html
public/510.html

View file

@ -1,7 +1,184 @@
# frozen_string_literal: true # frozen_string_literal: true
class ErrorPagesController < ApplicationController class ErrorPagesController < ApplicationController
def not_found; end # 4xx Client Error
def unprocessable_content; end # 400 :bad_request
def internal_server_error; end def bad_request
@code = 400
@message = t("errors.bad_request")
render "error_pages/generic"
end
# 401 :unauthorized
def unauthorized
@code = 401
@message = t("errors.unauthorized")
render "error_pages/generic"
end
# 402 :payment_required
def payment_required
@code = 402
@message = t("errors.payment_required")
render "error_pages/generic"
end
# 403 :forbidden
def forbidden
@code = 403
@message = t("errors.forbidden")
render "error_pages/generic"
end
# 404 :not_found
def not_found
@code = 404
@message = t("errors.not_found")
end
# 405 :method_not_allowed
def method_not_allowed
@code = 405
@message = t("errors.method_not_allowed")
render "error_pages/generic"
end
# 406 :not_acceptable
def not_acceptable
@code = 406
@message = t("errors.not_acceptable")
render "error_pages/generic"
end
# 407 :proxy_authentication_required
def proxy_authentication_required
@code = 407
@message = t("errors.proxy_authentication_required")
render "error_pages/generic"
end
# 408 :request_timeout
def request_timeout
@code = 408
@message = t("errors.request_timeout")
render "error_pages/generic"
end
# 409 :conflict
def conflict
@code = 409
@message = t("errors.conflict")
render "error_pages/generic"
end
# 410 :gone
def gone
@code = 4
@message = t("errors.gone")
render "error_pages/generic"10
end
# 411 :length_required
def length_required
@code = 411
@message = t("errors.length_required")
render "error_pages/generic"
end
# 412 :precondition_failed
def precondition_failed
@code = 412
@message = t("errors.precondition_failed")
render "error_pages/generic"
end
# 413 :payload_too_large
def payload_too_large
@code = 413
@message = t("errors.payload_too_large")
render "error_pages/generic"
end
# 414 :uri_too_long
def uri_too_long
@code = 414
@message = t("errors.uri_too_long")
render "error_pages/generic"
end
# 415 :unsupported_media_type
def unsupported_media_type
@code = 415
@message = t("errors.unsupported_media_type")
render "error_pages/generic"
end
# 416 :range_not_satisfiable
def range_not_satisfiable
@code = 416
@message = t("errors.range_not_satisfiable")
render "error_pages/generic"
end
# 417 :expectation_failed
def expectation_failed
@code = 417
@message = t("errors.expectation_failed")
render "error_pages/generic"
end
# 422 :unprocessable_entity
def unprocessable_entity
@code = 422
@message = t("errors.unprocessable_entity")
end
# 423 :locked
def locked
@code = 423
@message = t("errors.locked")
render "error_pages/generic"
end
# 424 :failed_dependency
def failed_dependency
@code = 424
@message = t("errors.failed_dependency")
render "error_pages/generic"
end
# 426 :upgrade_required
def upgrade_required
@code = 426
@message = t("errors.upgrade_required")
render "error_pages/generic"
end
# 5xx Server Error
# 500 :internal_server_error
def internal_server_error
@code = 500
@message = t("errors.internal_server_error")
end
# 501 :not_implemented
def not_implemented
@code = 501
@message = t("errors.not_implemented")
render "error_pages/generic"
end
# 502 :bad_gateway
def bad_gateway
@code = 502
@message = t("errors.bad_gateway")
render "error_pages/generic"
end
# 503 :service_unavailable
def service_unavailable
@code = 503
@message = t("errors.service_unavailable")
render "error_pages/generic"
end
# 504 :gateway_timeout
def gateway_timeout
@code = 504
@message = t("errors.gateway_timeout")
render "error_pages/generic"
end
# 505 :http_version_not_supported
def http_version_not_supported
@code = 505
@message = t("errors.http_version_not_supported")
render "error_pages/generic"
end
# 507 :insufficient_storage
def insufficient_storage
@code = 507
@message = t("errors.insufficient_storage")
render "error_pages/generic"
end
# 510 :not_extended
def not_extended
@code = 510
@message = t("errors.not_extended")
render "error_pages/generic"
end
end end

View file

@ -0,0 +1,2 @@
- content_for(:code) { "502" }
- content_for(:message) { t("errors.bad_gateway") }

View file

@ -0,0 +1,2 @@
- content_for(:code) { "400" }
- content_for(:message) { t("errors.bad_request") }

View file

@ -0,0 +1,2 @@
- content_for(:code) { "409" }
- content_for(:message) { t("errors.conflict") }

View file

@ -0,0 +1,2 @@
- content_for(:code) { "417" }
- content_for(:message) { t("error.expectation_failed") }

View file

@ -0,0 +1,3 @@
- content_for(:code) { "424" }
- content_for(:message) { t("errors.failed_dependency") }

View file

@ -0,0 +1,3 @@
- content_for(:code) { "403" }
- content_for(:message) { t("errors.forbidden") }

View file

@ -0,0 +1,3 @@
- content_for(:code) { "504" }
- content_for(:message) { t("errors.gateway_timeout") }

View file

@ -0,0 +1,3 @@
- content_for(:code) { "410" }
- content_for(:message) { t("errors.gone") }

View file

@ -0,0 +1,3 @@
- content_for(:code) { "505" }
- content_for(:message) { t("errors.http_version_not_supported") }

View file

@ -0,0 +1,3 @@
- content_for(:code) { "507" }
- content_for(:message) { t("errors.insufficient_storage") }

View file

@ -1,5 +1,6 @@
h1 Es ist ein Fehler aufgetreten - content_for(:code) { "500" }
- content_for(:message) { t("errors.internal_server_error") }
p Das kann leider vorkommen. Bitte versuche es nocheinmal und falls der Fehler weiter auftritt, hoffe dass er bald repariert wird, sorry p Das kann leider vorkommen. Bitte versuche es nocheinmal und falls der Fehler weiter auftritt, hoffe dass er bald repariert wird, sorry
p == '¯\_(ツ)_/¯' p == '¯\_(ツ)_/¯'
- content_for(:message) { t("errors.internal_server_error") }

View file

@ -0,0 +1,3 @@
- content_for(:code) { "411" }
- content_for(:message) { t("errors.length_required") }

View file

@ -0,0 +1,3 @@
- content_for(:code) { "423" }
- content_for(:message) { t("errors.locked") }

View file

@ -0,0 +1,3 @@
- content_for(:code) { "405" }
- content_for(:message) { t("errors.method_not_allowed") }

View file

@ -0,0 +1,3 @@
- content_for(:code) { "406" }
- content_for(:message) { t("errors.not_acceptable") }

View file

@ -0,0 +1,3 @@
- content_for(:code) { "510" }
- content_for(:message) { t("errors.not_extended") }

View file

@ -1,6 +1,4 @@
h1 Error 404 - content_for(:code) { "404" }
- content_for(:message) { t("errors.not_found") }
p Diese Seite existiert nicht (mehr), sorry.
p p
= image_tag("404.gif") = image_tag("404.gif")

View file

@ -0,0 +1,3 @@
- content_for(:code) { "501" }
- content_for(:message) { t("errors.not_implemented") }

View file

@ -0,0 +1,3 @@
- content_for(:code) { "413" }
- content_for(:message) { t("errors.payload_too_large") }

View file

@ -0,0 +1,3 @@
- content_for(:code) { "402" }
- content_for(:message) { t("errors.payment_required") }

View file

@ -0,0 +1,3 @@
- content_for(:code) { "412" }
- content_for(:message) { t("errors.precondition_failed") }

View file

@ -0,0 +1,3 @@
- content_for(:code) { "407" }
- content_for(:message) { t("errors.proxy_authentication_required") }

View file

@ -0,0 +1,3 @@
- content_for(:code) { "416" }
- content_for(:message) { t("errors.range_not_satisfiable") }

View file

@ -0,0 +1,3 @@
- content_for(:code) { "408" }
- content_for(:message) { t("errors.request_timeout") }

View file

@ -0,0 +1,3 @@
- content_for(:code) { "503" }
- content_for(:message) { t("errors.service_unavailable") }

View file

@ -0,0 +1,3 @@
- content_for(:code) { "401" }
- content_for(:message) { t("errors.unauthorized") }

View file

@ -1,3 +1,6 @@
- content_for(:code) { "401" }
- content_for(:message) { t("errors.unauthorized") }
h1 Es ist ein Fehler aufgetreten h1 Es ist ein Fehler aufgetreten
p Ich konnte deine Anfrage nicht verstehen. p Ich konnte deine Anfrage nicht verstehen.

View file

@ -0,0 +1,3 @@
- content_for(:code) { "422" }
- content_for(:message) { t("errors.unprocessable_entity") }

View file

@ -0,0 +1,3 @@
- content_for(:code) { "415" }
- content_for(:message) { t("errors.unsupported_media_type") }

View file

@ -0,0 +1,3 @@
- content_for(:code) { "426" }
- content_for(:message) { t("errors.upgrade_required") }

View file

@ -0,0 +1,3 @@
- content_for(:code) { "414" }
- content_for(:message) { t("errors.uri_too_long") }

View file

@ -11,10 +11,11 @@ html data-bs-theme="light" data-controller="set-theme"
= render partial: "layouts/navigation" = render partial: "layouts/navigation"
.container-fluid .container-fluid
.row .row
= render partial: "layouts/sidebar"
main.col.ps-md-2.pt-2 main.col.ps-md-2.pt-2
.container-fluid .container
#main-content[data-controller="rich-text-link-targets"] #main-content
h1.error_heading = ":-/ Error #{yield(:code)}"
p Deine Anfrage konnte nicht bearbeitet werden.
- if content_for?(:message)
p.error_message #{yield(:message)}
= yield = yield
footer.container-fluid.mt-auto.border-top
= Rails.configuration.build_version && "Version: #{Rails.configuration.build_version}"

View file

@ -0,0 +1,5 @@
de-CH:
errors:
not_found: Diese Seite existiert nicht (mehr), sorry.
bad_gateway: Es werden derzeit Wartungsarbeiten ausgeführt. Komm bitte später wieder vorbei.
gateway_timeout: Es werden derzeit Wartungsarbeiten ausgeführt. Komm bitte später wieder vorbei.

View file

@ -7,9 +7,37 @@ task generate_error_pages: :environment do
Rails.application.config.action_controller.perform_caching = false Rails.application.config.action_controller.perform_caching = false
pages = { pages = {
"error_pages/bad_request" => "400.html",
"error_pages/unauthorized" => "401.html",
"error_pages/payment_required" => "402.html",
"error_pages/forbidden" => "403.html",
"error_pages/not_found" => "404.html", "error_pages/not_found" => "404.html",
"error_pages/unprocessable_content" => "422.html", "error_pages/method_not_allowed" => "405.html",
"error_pages/internal_server_error" => "500.html" "error_pages/not_acceptable" => "406.html",
"error_pages/proxy_authentication_required" => "407.html",
"error_pages/request_timeout" => "408.html",
"error_pages/conflict" => "409.html",
"error_pages/gone" => "410.html",
"error_pages/length_required" => "411.html",
"error_pages/precondition_failed" => "412.html",
"error_pages/payload_too_large" => "413.html",
"error_pages/uri_too_long" => "414.html",
"error_pages/unsupported_media_type" => "415.html",
"error_pages/range_not_satisfiable" => "416.html",
"error_pages/expectation_failed" => "417.html",
"error_pages/unprocessable_entity" => "422.html",
"error_pages/locked" => "423.html",
"error_pages/failed_dependency" => "424.html",
"error_pages/upgrade_required" => "426.html",
"error_pages/internal_server_error" => "500.html",
"error_pages/not_implemented" => "501.html",
"error_pages/bad_gateway" => "502.html",
"error_pages/service_unavailable" => "503.html",
"error_pages/gateway_timeout" => "504.html",
"error_pages/http_version_not_supported" => "505.html",
"error_pages/insufficient_storage" => "507.html",
"error_pages/not_extended" => "510.html"
} }
pages.each do |page, output| pages.each do |page, output|

View file

@ -1,37 +0,0 @@
<!-- BEGIN app/views/layouts/errors.html.slim -->
<!DOCTYPE html><html data-bs-theme="light" data-controller="set-theme"><head><title>a11ydive</title><meta content="width=device-width,initial-scale=1" name="viewport" /><link rel="stylesheet" href="/assets/application-877f8e6dd1af27e6f89ee40c3f9307d30e941a0ac2baddb931a054b18c78e299.css" data-turbo-track="reload" /><script src="/assets/application-a9d006cfd81d4a79ad1e8006d27ebf6ad1a5bbe11b57f3aa0328cf4fdd51fef3.js" data-turbo-track="reload" type="module"></script></head><body><!-- BEGIN app/views/layouts/_navigation.html.erb --><nav class="navbar navbar-expand-lg bg-body-tertiary">
<div class="container-fluid">
<a class="navbar-brand" href="/">
<i class="bi bi-universal-access"></i>
a11ydive
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<div class="me-auto"></div>
<ul class="navbar-nav flex-row flex-wrap ms-md-auto">
<li class="nav-item">
<button class="btn btn-link nav-link py-2 px-0 px-lg-2 d-flex align-items-center"
data-controller="theme-switcher"
data-action="theme-switcher#switch"
id="bd-theme"
type="button"
data-bs-display="static"
aria-label="Toggle theme (auto)">
<i class="bi bi-sun-fill my-1"></i>
</button>
</li>
</ul>
</div>
</div>
</nav>
<!-- END app/views/layouts/_navigation.html.erb --><div class="container-fluid"><div class="row"><!-- BEGIN app/views/layouts/_sidebar.html.erb --><div class="col col-auto px-0 d-none d-md-block">
<div id="sidebar" class="collapse collapse-horizontal show border-0">
<div id="sidebar-nav" class="list-group border-0 rounded-0 text-sm-start" style="min-height: 90vh">
<div class="me-auto"></div>
</div>
</div>
</div><!-- END app/views/layouts/_sidebar.html.erb --><main class="col ps-md-2 pt-2"><div class="container-fluid"><div data-controller="rich-text-link-targets" id="main-content"><!-- BEGIN app/views/error_pages/not_found.html.slim -->
<h1>Error 404 </h1><p>Diese Seite existiert nicht (mehr), sorry.</p><p><img src="/assets/404-8f41d61c0262143bfb0404a0126ccd1f49a5b0ec0a703da16311728c32de5f21.gif" /></p><!-- END app/views/error_pages/not_found.html.slim -->
</div></div></main></div></div><footer class="container-fluid mt-auto border-top">Version: dev</footer></body></html><!-- END app/views/layouts/errors.html.slim -->

View file

@ -1,66 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>Your browser is not supported (406)</title>
<meta name="viewport" content="width=device-width,initial-scale=1">
<style>
.rails-default-error-page {
background-color: #EFEFEF;
color: #2E2F30;
text-align: center;
font-family: arial, sans-serif;
margin: 0;
}
.rails-default-error-page div.dialog {
width: 95%;
max-width: 33em;
margin: 4em auto 0;
}
.rails-default-error-page div.dialog > div {
border: 1px solid #CCC;
border-right-color: #999;
border-left-color: #999;
border-bottom-color: #BBB;
border-top: #B00100 solid 4px;
border-top-left-radius: 9px;
border-top-right-radius: 9px;
background-color: white;
padding: 7px 12% 0;
box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
}
.rails-default-error-page h1 {
font-size: 100%;
color: #730E15;
line-height: 1.5em;
}
.rails-default-error-page div.dialog > p {
margin: 0 0 1em;
padding: 1em;
background-color: #F7F7F7;
border: 1px solid #CCC;
border-right-color: #999;
border-left-color: #999;
border-bottom-color: #999;
border-bottom-left-radius: 4px;
border-bottom-right-radius: 4px;
border-top-color: #DADADA;
color: #666;
box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
}
</style>
</head>
<body class="rails-default-error-page">
<!-- This file lives in public/406-unsupported-browser.html -->
<div class="dialog">
<div>
<h1>Your browser is not supported.</h1>
<p>Please upgrade your browser to continue.</p>
</div>
</div>
</body>
</html>

View file

@ -1,37 +0,0 @@
<!-- BEGIN app/views/layouts/errors.html.slim -->
<!DOCTYPE html><html data-bs-theme="light" data-controller="set-theme"><head><title>a11ydive</title><meta content="width=device-width,initial-scale=1" name="viewport" /><link rel="stylesheet" href="/assets/application-877f8e6dd1af27e6f89ee40c3f9307d30e941a0ac2baddb931a054b18c78e299.css" data-turbo-track="reload" /><script src="/assets/application-a9d006cfd81d4a79ad1e8006d27ebf6ad1a5bbe11b57f3aa0328cf4fdd51fef3.js" data-turbo-track="reload" type="module"></script></head><body><!-- BEGIN app/views/layouts/_navigation.html.erb --><nav class="navbar navbar-expand-lg bg-body-tertiary">
<div class="container-fluid">
<a class="navbar-brand" href="/">
<i class="bi bi-universal-access"></i>
a11ydive
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<div class="me-auto"></div>
<ul class="navbar-nav flex-row flex-wrap ms-md-auto">
<li class="nav-item">
<button class="btn btn-link nav-link py-2 px-0 px-lg-2 d-flex align-items-center"
data-controller="theme-switcher"
data-action="theme-switcher#switch"
id="bd-theme"
type="button"
data-bs-display="static"
aria-label="Toggle theme (auto)">
<i class="bi bi-sun-fill my-1"></i>
</button>
</li>
</ul>
</div>
</div>
</nav>
<!-- END app/views/layouts/_navigation.html.erb --><div class="container-fluid"><div class="row"><!-- BEGIN app/views/layouts/_sidebar.html.erb --><div class="col col-auto px-0 d-none d-md-block">
<div id="sidebar" class="collapse collapse-horizontal show border-0">
<div id="sidebar-nav" class="list-group border-0 rounded-0 text-sm-start" style="min-height: 90vh">
<div class="me-auto"></div>
</div>
</div>
</div><!-- END app/views/layouts/_sidebar.html.erb --><main class="col ps-md-2 pt-2"><div class="container-fluid"><div data-controller="rich-text-link-targets" id="main-content"><!-- BEGIN app/views/error_pages/unprocessable_content.html.slim -->
<h1>Es ist ein Fehler aufgetreten</h1><p>Ich konnte deine Anfrage nicht verstehen.</p><!-- END app/views/error_pages/unprocessable_content.html.slim -->
</div></div></main></div></div><footer class="container-fluid mt-auto border-top">Version: dev</footer></body></html><!-- END app/views/layouts/errors.html.slim -->

View file

@ -1,37 +0,0 @@
<!-- BEGIN app/views/layouts/errors.html.slim -->
<!DOCTYPE html><html data-bs-theme="light" data-controller="set-theme"><head><title>a11ydive</title><meta content="width=device-width,initial-scale=1" name="viewport" /><link rel="stylesheet" href="/assets/application-877f8e6dd1af27e6f89ee40c3f9307d30e941a0ac2baddb931a054b18c78e299.css" data-turbo-track="reload" /><script src="/assets/application-a9d006cfd81d4a79ad1e8006d27ebf6ad1a5bbe11b57f3aa0328cf4fdd51fef3.js" data-turbo-track="reload" type="module"></script></head><body><!-- BEGIN app/views/layouts/_navigation.html.erb --><nav class="navbar navbar-expand-lg bg-body-tertiary">
<div class="container-fluid">
<a class="navbar-brand" href="/">
<i class="bi bi-universal-access"></i>
a11ydive
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<div class="me-auto"></div>
<ul class="navbar-nav flex-row flex-wrap ms-md-auto">
<li class="nav-item">
<button class="btn btn-link nav-link py-2 px-0 px-lg-2 d-flex align-items-center"
data-controller="theme-switcher"
data-action="theme-switcher#switch"
id="bd-theme"
type="button"
data-bs-display="static"
aria-label="Toggle theme (auto)">
<i class="bi bi-sun-fill my-1"></i>
</button>
</li>
</ul>
</div>
</div>
</nav>
<!-- END app/views/layouts/_navigation.html.erb --><div class="container-fluid"><div class="row"><!-- BEGIN app/views/layouts/_sidebar.html.erb --><div class="col col-auto px-0 d-none d-md-block">
<div id="sidebar" class="collapse collapse-horizontal show border-0">
<div id="sidebar-nav" class="list-group border-0 rounded-0 text-sm-start" style="min-height: 90vh">
<div class="me-auto"></div>
</div>
</div>
</div><!-- END app/views/layouts/_sidebar.html.erb --><main class="col ps-md-2 pt-2"><div class="container-fluid"><div data-controller="rich-text-link-targets" id="main-content"><!-- BEGIN app/views/error_pages/internal_server_error.html.slim -->
<h1>Es ist ein Fehler aufgetreten</h1><p>Das kann leider vorkommen. Bitte versuche es nocheinmal und falls der Fehler weiter auftritt, hoffe dass er bald repariert wird, sorry </p><p>¯\_(ツ)_/¯</p><!-- END app/views/error_pages/internal_server_error.html.slim -->
</div></div></main></div></div><footer class="container-fluid mt-auto border-top">Version: dev</footer></body></html><!-- END app/views/layouts/errors.html.slim -->

View file

@ -1,66 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>We're sorry, but something went wrong (502)</title>
<meta name="viewport" content="width=device-width,initial-scale=1">
<style>
.rails-default-error-page {
background-color: #EFEFEF;
color: #2E2F30;
text-align: center;
font-family: arial, sans-serif;
margin: 0;
}
.rails-default-error-page div.dialog {
width: 95%;
max-width: 33em;
margin: 4em auto 0;
}
.rails-default-error-page div.dialog > div {
border: 1px solid #CCC;
border-right-color: #999;
border-left-color: #999;
border-bottom-color: #BBB;
border-top: #B00100 solid 4px;
border-top-left-radius: 9px;
border-top-right-radius: 9px;
background-color: white;
padding: 7px 12% 0;
box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
}
.rails-default-error-page h1 {
font-size: 100%;
color: #730E15;
line-height: 1.5em;
}
.rails-default-error-page div.dialog > p {
margin: 0 0 1em;
padding: 1em;
background-color: #F7F7F7;
border: 1px solid #CCC;
border-right-color: #999;
border-left-color: #999;
border-bottom-color: #999;
border-bottom-left-radius: 4px;
border-bottom-right-radius: 4px;
border-top-color: #DADADA;
color: #666;
box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
}
</style>
</head>
<body class="rails-default-error-page">
<!-- This file lives in public/500.html -->
<div class="dialog">
<div>
<h1>We're sorry, but something went wrong.</h1>
</div>
<p>If you are the application owner check the logs for more information.</p>
</div>
</body>
</html>