[Bug 2156606] [NEW] [SRU] horizon 2025.1 fix static link in SCSS compiler

Himawan Winarto 2156606 at bugs.launchpad.net
Fri Jun 12 14:26:49 UTC 2026


Public bug reported:

[ Impact ]
 * Horizon migrated the SCSS compiler from django-pyscss to libsass in the 
   stable/2025.1 (epoxy) release. After this migration the $static_url variable
   in the Dashboard SCSS is no longer templated correctly and falls back to the
   default "/static/" value.
 * This caused the asset URLs in the compiled dashboard CSS (i.e. fonts and
   images) are configured to the "/static/..." path instead of the configured
   $STATIC_URL path.
 * In any deployment served from a non-root path, e.g. WEBROOT = '/horizon',
   with Apache alias set to "Alias /horizon/static <staticdir>", the default
   "/static/..." URLs do not exist and cannot be resolved.

 * Backporting this fix restores correct rendering of all CSS-referenced static
   assets by resolving the $static_url variable to the actual STATIC_URL at
   SCSS compile time with the help of a custom libsass function that replaces
   The previous "/static/" default.
 * The uploaded fix comes from the backported upstream patch that has been
   incorporated in the stable/2025.2 release.
[ Test Plan ]
 * [0] The following versions of Ubuntu-OpenStack will be tested:
       - UCA: noble-epoxy
 * [1] Deploy an OpenStack environment on the target series with the
        openstack-dashboard package installed from a non-root web root,
        I.e. set WEBROOT = '/horizon' such that STATIC_URL is /horizon/static/.
 * [2] Log into the Horizon dashboard.
 * [3] Verify the behavior - Before the patch, the login page background image
        and icon/glyphs are missing, and the referenced font/image URLs are set
        as /static/... and return 404. After the patch, the assets paths are
        set as /horizon/static/... and return 200.
[ Where problems could occur ]
 * The change only affects SCSS compilation performed during the collectstatic
    or compress time. It has no effect on Horizon’s runtime logic or API
    interactions.
 * If STATIC_URL were unset or misconfigured, $static_url variable in the SCSS
    could resolve to an unexpected value; resolution failure will be limited to
    the appearance of static assets (fonts and images).
[ Other Info ]
 * Upstream commit to horizon (master):
   https://review.opendev.org/c/openstack/horizon/+/949036
 * Known workaround: Manually override the $static_url variable in horizon.scss
   to the proper URL of the dashboard static directory.

** Affects: cloud-archive
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Ubuntu
OpenStack, which is subscribed to Ubuntu Cloud Archive.
https://bugs.launchpad.net/bugs/2156606

Title:
  [SRU] horizon 2025.1 fix static link in SCSS compiler

Status in Ubuntu Cloud Archive:
  New

Bug description:
  [ Impact ]
   * Horizon migrated the SCSS compiler from django-pyscss to libsass in the 
     stable/2025.1 (epoxy) release. After this migration the $static_url variable
     in the Dashboard SCSS is no longer templated correctly and falls back to the
     default "/static/" value.
   * This caused the asset URLs in the compiled dashboard CSS (i.e. fonts and
     images) are configured to the "/static/..." path instead of the configured
     $STATIC_URL path.
   * In any deployment served from a non-root path, e.g. WEBROOT = '/horizon',
     with Apache alias set to "Alias /horizon/static <staticdir>", the default
     "/static/..." URLs do not exist and cannot be resolved.

   * Backporting this fix restores correct rendering of all CSS-referenced static
     assets by resolving the $static_url variable to the actual STATIC_URL at
     SCSS compile time with the help of a custom libsass function that replaces
     The previous "/static/" default.
   * The uploaded fix comes from the backported upstream patch that has been
     incorporated in the stable/2025.2 release.
  [ Test Plan ]
   * [0] The following versions of Ubuntu-OpenStack will be tested:
         - UCA: noble-epoxy
   * [1] Deploy an OpenStack environment on the target series with the
          openstack-dashboard package installed from a non-root web root,
          I.e. set WEBROOT = '/horizon' such that STATIC_URL is /horizon/static/.
   * [2] Log into the Horizon dashboard.
   * [3] Verify the behavior - Before the patch, the login page background image
          and icon/glyphs are missing, and the referenced font/image URLs are set
          as /static/... and return 404. After the patch, the assets paths are
          set as /horizon/static/... and return 200.
  [ Where problems could occur ]
   * The change only affects SCSS compilation performed during the collectstatic
      or compress time. It has no effect on Horizon’s runtime logic or API
      interactions.
   * If STATIC_URL were unset or misconfigured, $static_url variable in the SCSS
      could resolve to an unexpected value; resolution failure will be limited to
      the appearance of static assets (fonts and images).
  [ Other Info ]
   * Upstream commit to horizon (master):
     https://review.opendev.org/c/openstack/horizon/+/949036
   * Known workaround: Manually override the $static_url variable in horizon.scss
     to the proper URL of the dashboard static directory.

To manage notifications about this bug go to:
https://bugs.launchpad.net/cloud-archive/+bug/2156606/+subscriptions




More information about the Ubuntu-openstack-bugs mailing list