You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When using Jekyll, the 404 page (defined with permalink: /404.html) does not correctly resolve relative paths for non-root URLs. This issue occurs because Jekyll infers the relative paths based on the URL being accessed, which causes styles, scripts, and other assets to fail to load when accessing non-existent pages at deeper URL levels.
Problem Description
For example:
Accessing a non-existent URL like <server>:<port>/non-exist renders the 404 page correctly, and all assets load as expected.
However, accessing a non-existent URL like <server>:<port>/non/exist causes the relative paths to be resolved incorrectly. The browser attempts to load assets from /non/assets/... instead of ../assets/... or /assets/..., resulting in the following errors:
[2025-01-22 12:32:51] ERROR '/non/exist' not found.
[2025-01-22 12:32:51] ERROR '/non/assets/bootstrap-table/dist/bootstrap-table.min.css' not found.
[2025-01-22 12:32:51] ERROR '/non/assets/bootstrap/dist/js/bootstrap.bundle.min.js' not found.
[2025-01-22 12:32:51] ERROR '/non/assets/jquery/dist/jquery.min.js' not found.
[2025-01-22 12:32:51] ERROR '/non/assets/@fortawesome/fontawesome-free/css/all.min.css' not found.
[2025-01-22 12:32:51] ERROR '/non/assets/bootstrap-table/dist/extensions/mobile/bootstrap-table-mobile.min.js' not found.
[2025-01-22 12:32:51] ERROR '/non/assets/bootstrap-table/dist/bootstrap-table.min.js' not found.
[2025-01-22 12:32:51] ERROR '/non/assets/luxon/build/global/luxon.min.js' not found.
[2025-01-22 12:32:51] ERROR '/non/assets/mathjax/es5/tex-chtml.js' not found.
[2025-01-22 12:32:51] ERROR '/non/assets/vanilla-lazyload/dist/lazyload.min.js' not found.
[2025-01-22 12:32:51] ERROR '/non/assets/intersection-observer/intersection-observer.js' not found.
[2025-01-22 12:32:51] ERROR '/non/assets/iframe-resizer/js/iframeResizer.min.js' not found.
[2025-01-22 12:32:51] ERROR '/non/assets/scratchblocks.min.js' not found.
[2025-01-22 12:32:51] ERROR '/non/assets/twemoji/dist/twemoji.min.js' not found.
[2025-01-22 12:32:51] ERROR '/non/assets/page.css' not found.
[2025-01-22 12:32:51] ERROR '/non/assets/mermaid.min.js' not found.
[2025-01-22 12:32:51] ERROR '/non/assets/jekyll-theme-cs50.js' not found.
[2025-01-22 12:32:51] ERROR '/non/assets/page.js' not found.
[2025-01-22 12:32:51] ERROR '/non/favicon.ico' not found.
Expected Behavior
The 404 page should resolve all relative paths (e.g., /assets/...) correctly, regardless of the URL being accessed. For example, accessing <server>:<port>/non/exist should load assets from /assets/... or ../assets/... instead of /non/assets/....
Steps to Reproduce
Set up a Jekyll site with a 404 page defined using permalink: /404.html.
Access a non-existent root-level URL (e.g., <server>:<port>/non-exist). The 404 page should render correctly.
Access a non-existent deeper-level URL (e.g., <server>:<port>/non/exist). The 404 page will render, but assets will fail to load due to incorrect relative path resolution.
The text was updated successfully, but these errors were encountered:
When using Jekyll, the 404 page (defined with
permalink: /404.html
) does not correctly resolve relative paths for non-root URLs. This issue occurs because Jekyll infers the relative paths based on the URL being accessed, which causes styles, scripts, and other assets to fail to load when accessing non-existent pages at deeper URL levels.Problem Description
For example:
<server>:<port>/non-exist
renders the 404 page correctly, and all assets load as expected.<server>:<port>/non/exist
causes the relative paths to be resolved incorrectly. The browser attempts to load assets from/non/assets/...
instead of../assets/...
or/assets/...
, resulting in the following errors:Expected Behavior
The 404 page should resolve all relative paths (e.g.,
/assets/...
) correctly, regardless of the URL being accessed. For example, accessing<server>:<port>/non/exist
should load assets from/assets/...
or../assets/...
instead of/non/assets/...
.Steps to Reproduce
permalink: /404.html
.<server>:<port>/non-exist
). The 404 page should render correctly.<server>:<port>/non/exist
). The 404 page will render, but assets will fail to load due to incorrect relative path resolution.The text was updated successfully, but these errors were encountered: