hakonbja
(Hákon Bjarnason)
1
こんにちは
ここ数週間、固定フォント、ロゴ、アイコンを含むブランド向けの Discourse 設定のスタイリングを行なっています。
当初、インポートしたアセット(assets フォルダに配置し、about.json の assets オブジェクト下でインポート)は、SCSS 変数として即座に利用可能になりましたが、settings.theme_uploads に表示されるまで 1〜2 分ほど時間がかかっていました。
しかし現在、それらは settings.theme_uploads に一切表示されず、JavaScript 内で使用することができません。また、アセットを削除しても settings オブジェクトには残ったままです。SCSS での使用には影響はありません。
ご助力いただければ幸いです。
merefield
(Robert)
2
ええ、私も少し混乱しています。
settings.theme_uploads.blah のような参照を JavaScript で安全に使用できるのはいつですか?(もし可能なら)
計算プロパティで settings.theme_uploads が「未定義」になっています(少なくとも最初は)。
ここで正しいパターンは何ですか?
david
(David Taylor)
3
settings.theme_uploads データは、(投稿者が書いた後、おそらく) 比較的最近 JavaScript に追加されました。これは、私たち自身のテーマ/コンポーネントでも使用しているため、信頼できるはずです。どのような問題が発生しているか、詳しく説明していただけますか?
merefield
(Robert)
4
パスにアセットフォルダがなかったため、リンク切れが発生し、アセットが「最適化」されたのでしょう。
{
"name": "Cool Theme Component",
"about_url": "",
"component": true,
"assets": {
"background": "background.png"
}
}
は、以下のようになっているべきでした。
{
"name": "Cool Theme Component",
"about_url": "",
"component": true,
"assets": {
"background": "assets/background.png"
}
}
しまった!
参考までに、EmberコンポーネントのJavaScriptで参照しています。例:
@computed
backgroundImage() {
return settings.theme_uploads.background;
}
パスが間違っているとundefinedエラーが発生します!
聞いてくれてありがとう! @david、時間を無駄にしてすみません。
@hakonbja、問題は解決しましたか?