diff --git a/src/pytest_html/report.py b/src/pytest_html/report.py index 22ef7e14..dfe211d2 100644 --- a/src/pytest_html/report.py +++ b/src/pytest_html/report.py @@ -32,8 +32,13 @@ def _media_content(self, content, asset_name, *args, **kwargs): media_data = base64.b64decode(content.encode("utf-8"), validate=True) return self._write_content(media_data, asset_name) except binascii.Error: - # if not base64 content, just return as it's a file or link - return content + # if not base64 content, try to make it relative to the report + try: + abs_path = Path(content).resolve() + return str(abs_path.relative_to(self._report_path.parent.resolve())) + except (ValueError, OSError): + # On different drives (Windows) or unresolvable, return as-is + return content def _write_content(self, content, asset_name): content_relative_path = Path(self._assets_path, asset_name)