Uploaded avatars and Gravatar not working with subfolder installation… と同様です。
サブフォルダインストールのアップロードがすべて壊れています。アップロードは実際のアップロードディレクトリに格納されますが、投稿のレンダリング時にすべての画像が src="" になります。
投稿を作成中…
https://i.imgur.com/ofOUY4e.png
投稿後…
https://i.imgur.com/EBmnD6e.png
驚くべきことに、別のブラウザ(現在は Chrome)に切り替えてトピック(画像がまだ壊れている場所)を表示し、編集 をクリックすると、編集プレビューで画像が再びレンダリングされます!
https://i.imgur.com/3rQirhc.png
これにより、サーバーへのアップロードが成功していることが確認できます。これはすでに確認済みです。
root@cs6991:/var/discourse# ./launcher enter app
x86_64 arch detected.
root@cs6991-app:/var/www/discourse# ls 'public/~cs6991/forum'
backups uploads
root@cs6991-app:/var/www/discourse# ls 'public/~cs6991/forum/uploads'
default
root@cs6991-app:/var/www/discourse# ls 'public/~cs6991/forum/uploads/default/original/1X/'
08335563eac3a393e60a902d4d38cffdfa6d967d.png 3eee67e6460792667bab4f2248ad4643be4feae3.png
29e403dabcfee32379629fb6d844354193e278ba.png 42ecfcb27b534acc9f3436fa7d291c2fca106e57.png
しかし、実際のページにはレンダリングされていません。
アバターなどの他のアップロードでも同じ問題が発生します。
情報:
サブフォルダ: /~cs6991/forum
app.yml
## これはスタンドアロンの Discourse Docker コンテナテンプレートです
##
## このファイルを変更した後は、必ず再構築してください
## /var/discourse/launcher rebuild app
##
## 編集は非常に注意してください!
## YAML ファイルは、空白や配置の誤りに非常に敏感です!
## 必要に応じて、http://www.yamllint.com/ でこのファイルを検証してください
templates:
- "templates/postgres.template.yml"
- "templates/redis.template.yml"
- "templates/web.template.yml"
- "templates/web.ratelimited.template.yml"
## Let's Encrypt (https) を追加したい場合は、これらの 2 行をコメント解除してください
#- "templates/web.ssl.template.yml"
#- "templates/web.letsencrypt.ssl.template.yml"
## このコンテナはどの TCP/IP ポートを公開しますか?
## Apache や nginx のような他のウェブサーバーとポートを共有したい場合は、
## 詳細については https://meta.discourse.org/t/17247 を参照してください
expose:
- "80:80" # http
- "443:443" # https
params:
db_default_text_search_config: "pg_catalog.english"
## db_shared_buffers を総メモリの最大 25% に設定します。
## ブートストラップ時に検出された RAM に基づいて自動的に設定されますが、上書きすることもできます
db_shared_buffers: "128MB"
## ソートパフォーマンスを向上させる可能性がありますが、接続ごとのメモリ使用量が増加します
#db_work_mem: "40MB"
## このコンテナはどの Git リビジョンを使用しますか? (デフォルト: tests-passed)
#version: tests-passed
env:
LC_ALL: en_US.UTF-8
LANG: en_US.UTF-8
LANGUAGE: en_US.UTF-8
# DISCOURSE_DEFAULT_LOCALE: en
## 同時に処理できるウェブリクエスト数は? メモリと CPU コアに依存します。
## ブートストラップ時に検出された CPU に基づいて自動的に設定されますが、上書きすることもできます
UNICORN_WORKERS: 2
## TODO: この Discourse インスタンスが応答するホスト名
## 必須。Discourse は IP アドレスのみでは機能しません。
DISCOURSE_HOSTNAME: 'cgi.cse.unsw.edu.au'
## コンテナを上記と同じホスト名 (-h オプション) で起動したい場合はコメント解除してください (デフォルトは "$hostname-$config")
#DOCKER_USE_HOSTNAME: true
## TODO: 初期サインアップ時に管理者および開発者になるメールアドレスのカンマ区切りリスト
## 例: 'user1@example.com,user2@example.com'
DISCOURSE_DEVELOPER_EMAILS: '<<REDACTED>>'
## TODO: 新規アカウントの検証と通知の送信に使用される SMTP メールサーバー
# SMTP アドレス、ユーザー名、パスワードが必要です
# 注意: SMTP パスワードの '#' 文字は問題を引き起こす可能性があります!
DISCOURSE_SMTP_ADDRESS: email-smtp.ap-southeast-2.amazonaws.com
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: <<REDACTED>>
DISCOURSE_SMTP_PASSWORD: <<REDACTED>>
#DISCOURSE_SMTP_ENABLE_START_TLS: true # (オプション、デフォルトは true)
#DISCOURSE_SMTP_DOMAIN: discourse.example.com # (一部のプロバイダーで必要)
DISCOURSE_NOTIFICATION_EMAIL: discourse@cs6991.email # (通知の送信元アドレス)
## Lets Encrypt テンプレートを追加した場合、下のコメントを解除して無料 SSL 証明書を取得してください
#LETSENCRYPT_ACCOUNT_EMAIL: me@example.com
## この Discourse インスタンスの HTTP または HTTPS CDN アドレス (プル用に設定)
## 詳細については https://meta.discourse.org/t/14857 を参照してください
#DISCOURSE_CDN_URL: https://discourse-cdn.example.com
## IP アドレスルックアップ用の MaxMind geolocation IP アドレスキー
## 詳細については https://meta.discourse.org/t/-/137387/23 を参照してください
#DISCOURSE_MAXMIND_LICENSE_KEY: 1234567890123456
DISCOURSE_RELATIVE_URL_ROOT: '/~cs6991/forum'
## Docker コンテナはステートレスです。すべてのデータは /shared に保存されます
volumes:
- volume:
host: /var/discourse/shared/standalone
guest: /shared
- volume:
host: /var/discourse/shared/standalone/log/var-log
guest: /var/log
## プラグインはここに配置します
## 詳細については https://meta.discourse.org/t/19157 を参照してください
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone https://github.com/discourse/docker_manager.git
## ビルド後に実行するカスタムコマンド
run:
- exec: echo "カスタムコマンドを開始します"
## 初回サインアップメールの「From」アドレスを設定したい場合は、コメントを解除して変更してください。
## 初回サインアップメールを受信したら、行を再度コメントアウトしてください。一度だけ実行する必要があります。
#- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
- exec:
cd: $home
cmd:
- mkdir -p public/~cs6991/forum
- cd public/~cs6991/forum && ln -s ../../uploads && ln -s ../../backups
- replace:
global: true
filename: /etc/nginx/conf.d/discourse.conf
from: proxy_pass http://discourse;
to: |
rewrite ^/(.*)$ /~cs6991/forum/$1 break;
proxy_pass http://discourse;
- replace:
filename: /etc/nginx/conf.d/discourse.conf
from: etag off;
to: |
etag off;
location /~cs6991/forum {
rewrite ^/~cs6991/forum/?(.*)$ /$1;
}
- replace:
filename: /etc/nginx/conf.d/discourse.conf
from: $proxy_add_x_forwarded_for
to: $http_your_original_ip_header
global: true
- exec: echo "カスタムコマンドを終了します"
それ以外は、すべて正常に機能しているように見えますが、アップロードのレンダリングだけが非常に奇妙な動作をしています。
完全に新規ビルドでこの動作を確認しました。つまり、/var/discourse を削除し、docker を完全に削除して、クラウドインストール + サブフォルダの手順に従いました。
さらに調査できることがあれば、喜んで対応させていただきます。(imgur リンクですみません。まだ画像 2 枚以上の埋め込みは許可されていません!)
よろしくお願いします!