瀏覽代碼

Avoid loading icons sprite in preview error page

Sage Abdullah 4 月之前
父節點
當前提交
94de52e912

+ 3 - 0
wagtail/admin/templates/wagtailadmin/generic/preview_error.html

@@ -21,3 +21,6 @@
 {# Avoid loading all of Wagtail’s JavaScript for a fully static page. #}
 {% block js %}
 {% endblock %}
+
+{# Avoid loading Wagtail’s icons sprite. #}
+{% block icons_sprite %}{% endblock %}

+ 4 - 2
wagtail/admin/templates/wagtailadmin/skeleton.html

@@ -17,9 +17,11 @@
     {% sidebar_collapsed as sidebar_collapsed %}
     {% fragment as bodyclass %}{% block bodyclass %}{% endblock %}{% endfragment %}
     <body id="wagtail" class="{% classnames bodyclass sidebar_collapsed|yesno:"sidebar-collapsed," messages|yesno:"has-messages," %}" data-controller="w-init" data-w-init-ready-class="ready">
-        <div data-sprite></div>
+        {% block icons_sprite %}
+            <div data-sprite></div>
 
-        <script src="{% versioned_static 'wagtailadmin/js/icons.js' %}" data-icon-url="{% icon_sprite_url %}"></script>
+            <script src="{% versioned_static 'wagtailadmin/js/icons.js' %}" data-icon-url="{% icon_sprite_url %}"></script>
+        {% endblock %}
 
         <noscript class="capabilitymessage">
             {% blocktrans trimmed %}

+ 5 - 0
wagtail/admin/tests/pages/test_preview.py

@@ -6,6 +6,7 @@ from django.urls import reverse
 from django.utils import timezone
 from freezegun import freeze_time
 
+from wagtail.admin.staticfiles import versioned_static
 from wagtail.admin.views.pages.preview import PreviewOnEdit
 from wagtail.models import Page, Site
 from wagtail.test.testapp.models import (
@@ -159,6 +160,7 @@ class TestPreview(WagtailTestUtils, TestCase):
             '<h1 class="preview-error__title">Preview not available</h1>',
             html=True,
         )
+        self.assertNotContains(response, versioned_static("wagtailadmin/js/icons.js"))
 
     def test_preview_on_create_with_invalid_data(self):
         preview_url = reverse(
@@ -198,6 +200,7 @@ class TestPreview(WagtailTestUtils, TestCase):
             '<h1 class="preview-error__title">Preview not available</h1>',
             html=True,
         )
+        self.assertNotContains(response, versioned_static("wagtailadmin/js/icons.js"))
 
     def test_preview_on_create_with_m2m_field(self):
         preview_url = reverse(
@@ -418,6 +421,7 @@ class TestPreview(WagtailTestUtils, TestCase):
             '<h1 class="preview-error__title">Preview not available</h1>',
             html=True,
         )
+        self.assertNotContains(response, versioned_static("wagtailadmin/js/icons.js"))
 
     def test_preview_on_edit_clear_preview_data(self):
         preview_session_key = f"wagtail-preview-{self.event_page.id}"
@@ -453,6 +457,7 @@ class TestPreview(WagtailTestUtils, TestCase):
             '<h1 class="preview-error__title">Preview not available</h1>',
             html=True,
         )
+        self.assertNotContains(response, versioned_static("wagtailadmin/js/icons.js"))
 
     def test_preview_modes(self):
         preview_url = reverse(

+ 5 - 0
wagtail/snippets/tests/test_preview.py

@@ -5,6 +5,7 @@ from django.urls import reverse
 from django.utils import timezone
 from freezegun import freeze_time
 
+from wagtail.admin.staticfiles import versioned_static
 from wagtail.admin.views.generic.preview import PreviewOnEdit
 from wagtail.test.testapp.models import (
     EventCategory,
@@ -59,6 +60,7 @@ class TestPreview(WagtailTestUtils, TestCase):
             '<h1 class="preview-error__title">Preview not available</h1>',
             html=True,
         )
+        self.assertNotContains(response, versioned_static("wagtailadmin/js/icons.js"))
 
     def test_preview_on_create_with_invalid_data(self):
         self.assertNotIn(self.session_key_prefix, self.client.session)
@@ -90,6 +92,7 @@ class TestPreview(WagtailTestUtils, TestCase):
             '<h1 class="preview-error__title">Preview not available</h1>',
             html=True,
         )
+        self.assertNotContains(response, versioned_static("wagtailadmin/js/icons.js"))
 
     def test_preview_on_create_with_m2m_field(self):
         response = self.client.post(self.preview_on_add_url, self.post_data)
@@ -229,6 +232,7 @@ class TestPreview(WagtailTestUtils, TestCase):
             '<h1 class="preview-error__title">Preview not available</h1>',
             html=True,
         )
+        self.assertNotContains(response, versioned_static("wagtailadmin/js/icons.js"))
 
     def test_preview_on_edit_clear_preview_data(self):
         # Set a fake preview session data for the page
@@ -259,6 +263,7 @@ class TestPreview(WagtailTestUtils, TestCase):
             '<h1 class="preview-error__title">Preview not available</h1>',
             html=True,
         )
+        self.assertNotContains(response, versioned_static("wagtailadmin/js/icons.js"))
 
     def test_preview_revision(self):
         snippet = MultiPreviewModesModel.objects.create(text="Multiple modes")