Assets only available to SCSS not JS

Hello,

For the last week or so I’ve been styling a Discourse setup for a brand which includes fixed fonts, logos and icons.

To begin with I noticed that any assets I imported (place in assets folder and import under the assets object of about.json) became immediately available to use as a SCSS variable but took a minute or two to show up in settings.theme_uploads.

Now however, they don’t show up at all in settings.theme_uploads which means I can’t use them in my JavaScript. If I remove an asset it also stays in the settings object. The SCSS usage stays unaffected.

Help would be greatly appreciated.

1 „Gefällt mir“

Ja, das verwirrt mich auch ein wenig.

Wann ist es sicher, eine Referenz wie return settings.theme_uploads.blah in JavaScript zu verwenden, wenn überhaupt?

Ich bekomme in meiner berechneten Eigenschaft “undefined” für settings.theme_uploads (zumindest anfangs).

Was ist hier das richtige Muster?

1 „Gefällt mir“

Die Daten settings.theme_uploads wurden relativ kürzlich zu Javascript hinzugefügt (ich glaube, nachdem der OP geschrieben wurde). Sie sollten zuverlässig sein – wir verwenden sie in unseren eigenen Themes/Komponenten. Können Sie genauer erklären, welche Probleme Sie sehen?

3 „Gefällt mir“

Ah, mir fehlte der Ordner „assets“ in meinem Pfad zur Ressource, sodass der defekte Link die Ressource zweifellos „optimiert“ hatte:

{
  "name": "Cool Theme Component",
  "about_url": "",
  "component": true,
  "assets": {
    "background": "background.png"
  }
}

hätte sein sollen:

{
  "name": "Cool Theme Component",
  "about_url": "",
  "component": true,
  "assets": {
    "background": "assets/background.png"
  }
}

Doh!

Zu Ihrer Information, ich beziehe mich hier in Javascript in einer Ember-Komponente darauf, z. B.:

  @computed
  backgroundImage() {
    return settings.theme_uploads.background;
  }

Dies würde einen undefined-Fehler auslösen, wenn der Pfad falsch ist!

Danke fürs Zuhören! @david, Entschuldigung, dass ich Ihre Zeit verschwendet habe.

@hakonbja, hast du dein Problem gelöst?

2 „Gefällt mir“