移行後に一部のアイコンが表示されない

皆様、

I. Discourse の奇妙な動作について報告させてください。私たちはバージョン 2.7.0.beta7 を使用しており、最近、内部ネットワークからパブリックインターネットへの移行(というよりはリンク付け)を行いました。そこで奇妙な問題が発生しています。

ほとんどのアイコン(クリックするもの)が消えてしまいました。例如下記の通りです:

ただし、一部のアイコンは正常に機能しています。調査を試みましたが、パターンは見つかりませんでした。あるいは、単に見逃しているだけかもしれません。

こちらで実際に確認していただけます:https://community.robotict.com

何かご助言をいただければ大変嬉しく思います。

II. また、(おそらく関連しない問題かもしれませんが)カスタム CSS エディタが機能しません。過去に追加した CSS が半秒ほど表示されるものの、すぐに消えてしまいます。コンソールには ace.js に問題があると表示されています。

Uncaught TypeError: this.element.style is undefined
    i ace.js:1
    a ace.js:1
    y ace.js:1
    edit ace.js:1
    didInsertElement _admin-58c216d6bb14f7ee8451b6ef94ece0c6ea56c69b044ed8f4eea7934ec2ca3df8.js:315
    n ace.js:1
    a ace.js:1
    didInsertElement _admin-58c216d6bb14f7ee8451b6ef94ece0c6ea56c69b044ed8f4eea7934ec2ca3df8.js:303
    jQuery 10
    onreadystatechange _application-860b04b192b4dea3c5cb7e8d5e3d423bcf05a15ff2f4d8faf26a5d550ab169d2.js:10090
    c _application-860b04b192b4dea3c5cb7e8d5e3d423bcf05a15ff2f4d8faf26a5d550ab169d2.js:10083
    c _application-860b04b192b4dea3c5cb7e8d5e3d423bcf05a15ff2f4d8faf26a5d550ab169d2.js:10168
    jQuery 2
    c _application-860b04b192b4dea3c5cb7e8d5e3d423bcf05a15ff2f4d8faf26a5d550ab169d2.js:10130
    didInsertElement _admin-58c216d6bb14f7ee8451b6ef94ece0c6ea56c69b044ed8f4eea7934ec2ca3df8.js:302
    jQuery 26
ace.js:1:247491

:pray: 事前に感謝を込めて、心よりお願い申し上げます。

Roman

上部のアイコンが欠けているボタンは、何をするものなのでしょうか?プラグインやテーマのコンポーネントが追加しているものの、アイコンが正しく登録されていない可能性がありますか?

これもプラグインの問題である可能性があります。確認する方法の一つは、/safe-mode に移動してすべてのプラグインとテーマを無効にし、その後で CSS の編集が機能するかどうかを確認することです。もし機能する場合は、プラグインに問題があります。

レンチのアイコン(トピックアクション)がありました。また、スクリーンショットでは(見ることができませんが)、「返信」のテキストの左側には、通常、ハート、チェーン、ペン、ブックマークなどが表示されます。
あなたのアドバイスを確認します。
更新:セーフモードで試しましたが、変化はありません :frowning:

うーん、確かに奇妙ですね。お使いのサイトでどのプラグインが利用されているか教えていただけますか?

更新:これは非常に奇妙な問題で、アプリ内の一部の場所ではアイコンに consistently 影響が出ているようですが、他の場所では影響が出ていません。再デプロイを試してみてください。

はい、とても奇妙ですね。
私たちはこの 2 つのプラグインのみを使用しています。

  • docker_manager v0.1
  • styleguide v0.2

@romanhruska はい、考えられる原因が見つかりました。

あなたのインスタンス内の何かが、SVG 名前空間定数に対して https プレフィックスを強要しているようです。JS コードを調査したところ、コア内のこの行 の同等部分は https://www.w3.org/2000/svg を返していますが、コアでは http://www.w3.org/2000/svg であるべきです(私もローカルでテストし、その行を https に変更して編集したところ、完全に再現できました)。

これを行うパッチはありますか?もしない場合、サーバー側で JS 内のすべての http 文字列を https に変換するような特殊な処理が行われていますか?

バン!
おっしゃる通りです。これが問題でした。サーバー担当者が設定を変更したおかげで、アイコンもエディタも正常に動作するようになりました!本当にありがとうございます!!!

まだ混合コンテンツの警告に直面しています。アイコンやロゴなど、一部の画像がコード内で HTTP:// として記述されており、サーバーの自動処理がそれらに適用されていないようです。何か良いアイデアはありますか?

またもや、ヒントをいただきありがとうございます!

素晴らしいですね!

あなたのサイトは内部では http で運用されていて、その後 https に移行したのでしょうか?SiteSetting.force_https が true を返すように設定されているか確認する必要があります。もしそうであれば、再構築(rebake)を行う必要があるかもしれません。コマンドラインからは bundle exec rake posts:rebake を実行してください。