一部のリソースでサブフォルダのプレフィックスなし

バージョン: v2.6.0.beta2
セットアップ: Docker 上で実行中のサブフォルダ /forum/discourse 設定。ホスト側の Apache リバースプロキシは /forum/discourse で動作。

サブフォルダ設定のガイドに従ってインストールを行いました here。インストール自体は正常に完了しました。

しかし、いくつかのリソース URL が正しくプレフィックス付けされておらず、404 エラーが発生しています。例えば、デフォルトのヘッダーロゴの URL は /forum/discourse/images/discourse-logo-sketch.png であるべきですが、Discourse は /images/discourse-logo-sketch.png を使用しています。

コードベースにはあまり詳しくありませんが、この問題は application_logo_urlUrlHelper.absolute() でラップすることで解決できると思います here

同様の問題を見つけた場合は、このトピックに追記します。これが実際に問題なのか、それとも私の設定ミスなのか、ご教示ください。PR を提出することも喜んで行います。

app.yml
templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  - "templates/web.ratelimited.template.yml"

expose:
# ホスト側でこれらのポートにリバースプロキシを設定
  - "8080:80"   # http
  - "8443:443" # https

params:
  db_default_text_search_config: "pg_catalog.english"
  db_shared_buffers: "3072MB"

env:
  LANG: en_US.UTF-8
  UNICORN_WORKERS: 8
  DISCOURSE_HOSTNAME: mydomain.com
  DISCOURSE_RELATIVE_URL_ROOT: /forum/discourse
  DISCOURSE_DEVELOPER_EMAILS: 'info@mydomain.com'
  DISCOURSE_SMTP_ADDRESS: mydomain.com
  DISCOURSE_SMTP_PORT: 25
  DISCOURSE_SMTP_USER_NAME: user
  DISCOURSE_SMTP_PASSWORD: pass

## Docker コンテナはステートレスです。すべてのデータは /shared に保存されます
volumes:
  - volume:
      host: /var/discourse/shared/standalone
      guest: /shared
  - volume:
      host: /var/discourse/shared/standalone/log/var-log
      guest: /var/log

hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git

## ビルド後に実行する任意のカスタムコマンド
run:
  - exec: echo "カスタムコマンドの開始"
## https://meta.discourse.org/t/subfolder-support-with-docker/30507
  - exec:
      cd: $home
      cmd:
        - mkdir -p public/forum/discourse
        - cd public/forum/discourse && ln -s ../../uploads && ln -s ../../backups
  - replace:
      global: true
      filename: /etc/nginx/conf.d/discourse.conf
      from: proxy_pass http://discourse;
      to: |
          rewrite ^/(.*)$ /forum/discourse/$1 break;
          proxy_pass http://discourse;
  - replace:
      filename: /etc/nginx/conf.d/discourse.conf
      from: etag off;
      to: |
          etag off;
          location /forum/discourse {
              rewrite ^/forum/discourse/?(.*)$ /$1;
          }
  - replace:
      global: true
      filename: /etc/nginx/conf.d/discourse.conf
      from: $proxy_add_x_forwarded_for
      to: $http_your_original_ip_header
  - exec: echo "カスタムコマンドの終了"

プレースホルダーリソースはサブフォルダパスを確かに読み込みませんが、ウィザードセットアップが完了すると、それ以降に追加されるログにはサブフォルダ接頭辞が付与されます。

「いいね!」 5

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.