Exposing a not found page
Since Stenope is a static site generator, it does not handle 404 errors for missing pages. Instead, your web server should handle them.
However, you can let Stenope generate a 404.html page for you, and let your web server serve it.
For instance, add in your config/routes.yaml
:
errors_404:
path: 404.html
controller: Symfony\Bundle\FrameworkBundle\Controller\TemplateController
defaults:
template: errors/404.html.twig
options:
stenope:
sitemap: false
and create the templates/errors/404.html.twig
template:
{% extends 'base.html.twig' %}
{% block title %}Page not found{% endblock %}
{% block content %}
<h1>404 Not Found</h1>
<p>The page you are looking for does not exist.</p>
{% endblock %}
Then, configure your web server to serve this page when a 404 error occurs.
Nginx:
server {
# […]
location / {
try_files $uri $uri/index.html =404;
}
location ~ \.html {
internal;
}
error_page 404 /404.html;
Apache:
ErrorDocument 404 /404.html
404 page on Github Pages
If you're deploying on Github Pages, you're already set!
The 404.html
file at the root of your gh-pages
branch is automatically picked by Github for this purpose.