Skip to content

Commit

Permalink
Fix base_url in error pages.
Browse files Browse the repository at this point in the history
Closes mkdocs#1598.
  • Loading branch information
waylan committed Aug 21, 2018
1 parent da3a252 commit 0b2f6ab
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 6 deletions.
10 changes: 6 additions & 4 deletions mkdocs/commands/build.py
Expand Up @@ -51,8 +51,8 @@ def get_context(nav, files, config, page=None, base_url=''):
return {
'nav': nav,
'pages': files.documentation_pages(),

'base_url': base_url.rstrip('/'),
# `/foo/` => `/foo` however `/` => `/`
'base_url': base_url.rstrip('/') if len(base_url) > 1 else base_url,

'extra_css': extra_css,
'extra_javascript': extra_javascript,
Expand All @@ -78,8 +78,10 @@ def _build_template(name, template, files, config, nav):
if utils.is_error_template(name):
# Force absolute URLs in the nav of error pages and account for the
# possability that the docs root might be different than the server root.
# See https://github.com/mkdocs/mkdocs/issues/77
base_url = utils.urlparse(config['site_url']).path
# See https://github.com/mkdocs/mkdocs/issues/77.
# However, if site_url is not set, assume the docs root and server root
# are the same. See https://github.com/mkdocs/mkdocs/issues/1598.
base_url = utils.urlparse(config['site_url'] or '/').path
else:
base_url = utils.get_relative_url('.', name)

Expand Down
4 changes: 2 additions & 2 deletions mkdocs/tests/build_tests.py
Expand Up @@ -91,12 +91,12 @@ def test_context_base_url_relative_no_page_use_directory_urls(self):
def test_context_base_url_absolute_no_page(self):
cfg = load_config(use_directory_urls=False)
context = build.get_context(mock.Mock(), mock.Mock(), cfg, base_url='/')
self.assertEqual(context['base_url'], '')
self.assertEqual(context['base_url'], '/')

def test_context_base_url__absolute_no_page_use_directory_urls(self):
cfg = load_config()
context = build.get_context(mock.Mock(), mock.Mock(), cfg, base_url='/')
self.assertEqual(context['base_url'], '')
self.assertEqual(context['base_url'], '/')

def test_context_base_url_absolute_nested_no_page(self):
cfg = load_config(use_directory_urls=False)
Expand Down

0 comments on commit 0b2f6ab

Please sign in to comment.