← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1539871] [NEW] awesome fonts not found while in Django dev. server

 

Public bug reported:

Hi community,

(fix proposed in the attachment)
When running Horizon in the Django dev. server, Django complains that fonts awesome are not found:

$ python manage.py runserver 0.0.0.0:8888
Performing system checks...

System check identified no issues (0 silenced).
January 30, 2016 - 07:39:54
Django version 1.8.8, using settings 'openstack_dashboard.settings'
Starting development server at http://0.0.0.0:8888/
Quit the server with CONTROL-C.
[30/Jan/2016 07:40:06] "GET / HTTP/1.1" 302 0
[30/Jan/2016 07:40:22] "GET /auth/login/?next=/ HTTP/1.1" 200 7332
[30/Jan/2016 07:40:22] "GET /i18n/js/horizon+openstack_dashboard/ HTTP/1.1" 200 2372
[30/Jan/2016 07:40:22] "GET /static/dashboard/js/7fd3f7d69c71.js HTTP/1.1" 200 503331
[30/Jan/2016 07:40:22] "GET /static/dashboard/css/3b4554bd78f3.css HTTP/1.1" 200 19167
[30/Jan/2016 07:40:22] "GET /static/dashboard/css/54ae9d01741d.css HTTP/1.1" 200 966770
[30/Jan/2016 07:40:22] "GET /static/dashboard/js/563ea7fdfcde.js HTTP/1.1" 200 1144991
[30/Jan/2016 07:40:22] "GET /i18n/js/horizon+openstack_dashboard/ HTTP/1.1" 200 2372
Not Found: /dashboard/static/horizon/lib/font-awesome/fonts/fontawesome-webfont.woff2
[30/Jan/2016 07:40:23] "GET /dashboard/static/horizon/lib/font-awesome/fonts/fontawesome-webfont.woff2?v=4.3.0 HTTP/1.1" 404 4558
Not Found: /dashboard/static/horizon/lib/font-awesome/fonts/fontawesome-webfont.woff
[30/Jan/2016 07:40:23] "GET /dashboard/static/horizon/lib/font-awesome/fonts/fontawesome-webfont.woff?v=4.3.0 HTTP/1.1" 404 4555
Not Found: /dashboard/static/horizon/lib/font-awesome/fonts/fontawesome-webfont.ttf
[30/Jan/2016 07:40:23] "GET /dashboard/static/horizon/lib/font-awesome/fonts/fontawesome-webfont.ttf?v=4.3.0 HTTP/1.1" 404 4552
...

Horizon is installed via devstack.
I don't define WEBROOT, STATIC_URL in local_settings.py, and STATIC_URL default to '/static/' in settings.py.

======================
My analysis and guesses
======================

>From https://github.com/openstack/horizon/blob/master/openstack_dashboard/themes/webroot/_variables.scss :
/* This variable changes the web root of horizon to /dashboard rather
than the default '/' */
$static_url: "/dashboard/static/";
Here $static_url is hard-coded to "/dashboard/static/", which is OK for Apache wsgi server. Yet it shall be "/static/" for Django dev. server.

And path for fonts awesome is thus determined (incorrectly for Django dev. server) in
https://github.com/openstack/horizon/blob/master/openstack_dashboard/static/dashboard/scss/_variables.scss#L62 :

$fa-font-path: $static_url + "horizon/lib/font-awesome/fonts";

========
Solution
========
Removing the hard-coding solves the problem in my environment:

diff --git a/openstack_dashboard/themes/webroot/_variables.scss b/openstack_dashboard/themes/webroot/_variables.scss
index e4edb91..04353b3 100644
--- a/openstack_dashboard/themes/webroot/_variables.scss
+++ b/openstack_dashboard/themes/webroot/_variables.scss
@@ -1,5 +1 @@
-/* This variable changes the web root of horizon to /dashboard rather
-than the default '/' */
-$static_url: "/dashboard/static/";
-
-@import "../themes/default/variables";
\ No newline at end of file
+@import "../themes/default/variables";

The idea is that, now that we have $static_url determined from
settings.py (see
https://github.com/openstack/horizon/blob/master/horizon/utils/scss_filter.py#L33
), we shall not hard-code the path any more.

If my guess is correct, I'd like to propose the patch above. Correct me
if I'm missing something. :)

Thanks for your time.

** Affects: horizon
     Importance: Undecided
         Status: New


** Tags: 404 awesome fonts

** Patch added: "proposed fix"
   https://bugs.launchpad.net/bugs/1539871/+attachment/4559715/+files/remove-hard-encode-for-static_url.patch

** Description changed:

  Hi community,
  
  (fix proposed in the attachment)
  When running Horizon in the Django dev. server, Django complains that fonts awesome are not found:
  
  $ python manage.py runserver 0.0.0.0:8888
  Performing system checks...
  
  System check identified no issues (0 silenced).
  January 30, 2016 - 07:39:54
  Django version 1.8.8, using settings 'openstack_dashboard.settings'
  Starting development server at http://0.0.0.0:8888/
  Quit the server with CONTROL-C.
  [30/Jan/2016 07:40:06] "GET / HTTP/1.1" 302 0
  [30/Jan/2016 07:40:22] "GET /auth/login/?next=/ HTTP/1.1" 200 7332
  [30/Jan/2016 07:40:22] "GET /i18n/js/horizon+openstack_dashboard/ HTTP/1.1" 200 2372
  [30/Jan/2016 07:40:22] "GET /static/dashboard/js/7fd3f7d69c71.js HTTP/1.1" 200 503331
  [30/Jan/2016 07:40:22] "GET /static/dashboard/css/3b4554bd78f3.css HTTP/1.1" 200 19167
  [30/Jan/2016 07:40:22] "GET /static/dashboard/css/54ae9d01741d.css HTTP/1.1" 200 966770
  [30/Jan/2016 07:40:22] "GET /static/dashboard/js/563ea7fdfcde.js HTTP/1.1" 200 1144991
  [30/Jan/2016 07:40:22] "GET /i18n/js/horizon+openstack_dashboard/ HTTP/1.1" 200 2372
  Not Found: /dashboard/static/horizon/lib/font-awesome/fonts/fontawesome-webfont.woff2
  [30/Jan/2016 07:40:23] "GET /dashboard/static/horizon/lib/font-awesome/fonts/fontawesome-webfont.woff2?v=4.3.0 HTTP/1.1" 404 4558
  Not Found: /dashboard/static/horizon/lib/font-awesome/fonts/fontawesome-webfont.woff
  [30/Jan/2016 07:40:23] "GET /dashboard/static/horizon/lib/font-awesome/fonts/fontawesome-webfont.woff?v=4.3.0 HTTP/1.1" 404 4555
  Not Found: /dashboard/static/horizon/lib/font-awesome/fonts/fontawesome-webfont.ttf
  [30/Jan/2016 07:40:23] "GET /dashboard/static/horizon/lib/font-awesome/fonts/fontawesome-webfont.ttf?v=4.3.0 HTTP/1.1" 404 4552
  ...
  
  Horizon is installed via devstack.
- I don't define WEBROOT, STATIC_ROOT in local_settings.py, and STATIC_ROOT default to '/static/' in settings.py.
+ I don't define WEBROOT, STATIC_URL in local_settings.py, and STATIC_URL default to '/static/' in settings.py.
  
  ======================
  My analysis and guesses
  ======================
  
  From https://github.com/openstack/horizon/blob/master/openstack_dashboard/themes/webroot/_variables.scss :
  /* This variable changes the web root of horizon to /dashboard rather
  than the default '/' */
  $static_url: "/dashboard/static/";
  Here $static_url is hard-coded to "/dashboard/static/", which is OK for Apache wsgi server. Yet it shall be "/static/" for Django dev. server.
  
  And path for fonts awesome is thus determined (incorrectly for Django dev. server) in
  https://github.com/openstack/horizon/blob/master/openstack_dashboard/static/dashboard/scss/_variables.scss#L62 :
  
  $fa-font-path: $static_url + "horizon/lib/font-awesome/fonts";
  
  ========
  Solution
  ========
  Removing the hard-coding solves the problem in my environment:
  
  diff --git a/openstack_dashboard/themes/webroot/_variables.scss b/openstack_dashboard/themes/webroot/_variables.scss
  index e4edb91..04353b3 100644
  --- a/openstack_dashboard/themes/webroot/_variables.scss
  +++ b/openstack_dashboard/themes/webroot/_variables.scss
  @@ -1,5 +1 @@
  -/* This variable changes the web root of horizon to /dashboard rather
  -than the default '/' */
  -$static_url: "/dashboard/static/";
  -
  -@import "../themes/default/variables";
  \ No newline at end of file
  +@import "../themes/default/variables";
  
  The idea is that, now that we have $static_url determined from
  settings.py (see
  https://github.com/openstack/horizon/blob/master/horizon/utils/scss_filter.py#L33
  ), we shall not hard-code the path any more.
  
  If my guess is correct, I'd like to propose the patch above. Correct me
  if I'm missing something. :)
  
  Thanks for your time.

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Dashboard (Horizon).
https://bugs.launchpad.net/bugs/1539871

Title:
  awesome fonts not found while in Django dev. server

Status in OpenStack Dashboard (Horizon):
  New

Bug description:
  Hi community,

  (fix proposed in the attachment)
  When running Horizon in the Django dev. server, Django complains that fonts awesome are not found:

  $ python manage.py runserver 0.0.0.0:8888
  Performing system checks...

  System check identified no issues (0 silenced).
  January 30, 2016 - 07:39:54
  Django version 1.8.8, using settings 'openstack_dashboard.settings'
  Starting development server at http://0.0.0.0:8888/
  Quit the server with CONTROL-C.
  [30/Jan/2016 07:40:06] "GET / HTTP/1.1" 302 0
  [30/Jan/2016 07:40:22] "GET /auth/login/?next=/ HTTP/1.1" 200 7332
  [30/Jan/2016 07:40:22] "GET /i18n/js/horizon+openstack_dashboard/ HTTP/1.1" 200 2372
  [30/Jan/2016 07:40:22] "GET /static/dashboard/js/7fd3f7d69c71.js HTTP/1.1" 200 503331
  [30/Jan/2016 07:40:22] "GET /static/dashboard/css/3b4554bd78f3.css HTTP/1.1" 200 19167
  [30/Jan/2016 07:40:22] "GET /static/dashboard/css/54ae9d01741d.css HTTP/1.1" 200 966770
  [30/Jan/2016 07:40:22] "GET /static/dashboard/js/563ea7fdfcde.js HTTP/1.1" 200 1144991
  [30/Jan/2016 07:40:22] "GET /i18n/js/horizon+openstack_dashboard/ HTTP/1.1" 200 2372
  Not Found: /dashboard/static/horizon/lib/font-awesome/fonts/fontawesome-webfont.woff2
  [30/Jan/2016 07:40:23] "GET /dashboard/static/horizon/lib/font-awesome/fonts/fontawesome-webfont.woff2?v=4.3.0 HTTP/1.1" 404 4558
  Not Found: /dashboard/static/horizon/lib/font-awesome/fonts/fontawesome-webfont.woff
  [30/Jan/2016 07:40:23] "GET /dashboard/static/horizon/lib/font-awesome/fonts/fontawesome-webfont.woff?v=4.3.0 HTTP/1.1" 404 4555
  Not Found: /dashboard/static/horizon/lib/font-awesome/fonts/fontawesome-webfont.ttf
  [30/Jan/2016 07:40:23] "GET /dashboard/static/horizon/lib/font-awesome/fonts/fontawesome-webfont.ttf?v=4.3.0 HTTP/1.1" 404 4552
  ...

  Horizon is installed via devstack.
  I don't define WEBROOT, STATIC_URL in local_settings.py, and STATIC_URL default to '/static/' in settings.py.

  ======================
  My analysis and guesses
  ======================

  From https://github.com/openstack/horizon/blob/master/openstack_dashboard/themes/webroot/_variables.scss :
  /* This variable changes the web root of horizon to /dashboard rather
  than the default '/' */
  $static_url: "/dashboard/static/";
  Here $static_url is hard-coded to "/dashboard/static/", which is OK for Apache wsgi server. Yet it shall be "/static/" for Django dev. server.

  And path for fonts awesome is thus determined (incorrectly for Django dev. server) in
  https://github.com/openstack/horizon/blob/master/openstack_dashboard/static/dashboard/scss/_variables.scss#L62 :

  $fa-font-path: $static_url + "horizon/lib/font-awesome/fonts";

  ========
  Solution
  ========
  Removing the hard-coding solves the problem in my environment:

  diff --git a/openstack_dashboard/themes/webroot/_variables.scss b/openstack_dashboard/themes/webroot/_variables.scss
  index e4edb91..04353b3 100644
  --- a/openstack_dashboard/themes/webroot/_variables.scss
  +++ b/openstack_dashboard/themes/webroot/_variables.scss
  @@ -1,5 +1 @@
  -/* This variable changes the web root of horizon to /dashboard rather
  -than the default '/' */
  -$static_url: "/dashboard/static/";
  -
  -@import "../themes/default/variables";
  \ No newline at end of file
  +@import "../themes/default/variables";

  The idea is that, now that we have $static_url determined from
  settings.py (see
  https://github.com/openstack/horizon/blob/master/horizon/utils/scss_filter.py#L33
  ), we shall not hard-code the path any more.

  If my guess is correct, I'd like to propose the patch above. Correct
  me if I'm missing something. :)

  Thanks for your time.

To manage notifications about this bug go to:
https://bugs.launchpad.net/horizon/+bug/1539871/+subscriptions