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 me gusta

Sí, yo también estoy un poco confundido por esto.

¿En qué momento es seguro usar una referencia como return settings.theme_uploads.blah en javascript, si es que alguna vez lo es?

Estoy recibiendo “undefined” para settings.theme_uploads en mi propiedad calculada (inicialmente, al menos).

¿Cuál es el patrón correcto aquí?

1 me gusta

Los datos de settings.theme_uploads se agregaron a javascript relativamente hace poco (después de que se escribió el OP, creo). Debería ser confiable; lo usamos en nuestros propios temas/componentes. ¿Puedes explicar con más detalle qué problemas estás viendo?

3 Me gusta

Ah, me faltaba la carpeta de assets en mi ruta al asset, así que el enlace roto seguramente “optimizó” el asset:

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

debería haber sido:

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

¡Doh!

Para tu información, lo estoy referenciando en Javascript en un Ember Component, por ejemplo:

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

¡Eso generaría un error undefined cuando la ruta es incorrecta!

¡Gracias por escuchar! @david, lamento hacerte perder el tiempo.

@hakonbja, ¿resolviste tu problema?

2 Me gusta