版本:2.7.0.beta1
安装:discourse-docker
大家好,
不知该如何更好地描述这个问题,但我们 Discourse 安装中的 markdown-it JS 包无法正常工作。不知何故,JavaScript 的 URL 中会被额外添加一个协议"https"(该文件通过 CDN 提供并存储在我们的 S3 存储桶中)。
我附上了一张截图。
![]()
所有其他资源都运行正常。
仅这个问题导致我们无法获得预览功能 ![]()
感谢大家的时间,期待回复 ![]()
版本:2.7.0.beta1
安装:discourse-docker
大家好,
不知该如何更好地描述这个问题,但我们 Discourse 安装中的 markdown-it JS 包无法正常工作。不知何故,JavaScript 的 URL 中会被额外添加一个协议"https"(该文件通过 CDN 提供并存储在我们的 S3 存储桶中)。
我附上了一张截图。
![]()
所有其他资源都运行正常。
仅这个问题导致我们无法获得预览功能 ![]()
感谢大家的时间,期待回复 ![]()
您能在这里分享您的 app.yml 文件吗?
是的,当然。
templates:
#- “templates/postgres.template.yml”
#- “templates/redis.template.yml”
expose:
params:
db_default_text_search_config: “pg_catalog.english”
db_shared_buffers: ‘16GB’
#db_work_mem: “40MB”
#version: tests-passed
env:
LANG: en_US.UTF-8
UNICORN_WORKERS: 8
DISCOURSE_HOSTNAME: ‘community-dev.stackit.cloud’
#DOCKER_USE_HOSTNAME: true
DISCOURSE_DEVELOPER_EMAILS: ‘xxx’
DISCOURSE_SMTP_ADDRESS: ‘1.2.3.4’
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: ‘xx@xx.de’
DISCOURSE_SMTP_PASSWORD: ‘xxx’
DISCOURSE_SMTP_ENABLE_START_TLS: true
DISCOURSE_SMTP_OPENSSL_VERIFY_MODE: none
#LETSENCRYPT_ACCOUNT_EMAIL: info@ediri.de
#DISCOURSE_CDN_URL: https://discourse-cdn.example.com
#DISCOURSE_CDN_URL: community-cdn.change.me
#DISCOURSE_MAXMIND_LICENSE_KEY: 1234567890123456
DISCOURSE_DB_POOL: 16
DISCOURSE_DB_USERNAME: ‘discourse’
DISCOURSE_DB_PASSWORD: ‘yyy’
DISCOURSE_DB_HOST: 1.2.3.4
DISCOURSE_DB_NAME: ‘discourse’
DISCOURSE_DB_PORT: 5432
DISCOURSE_REDIS_HOST: ‘y.de’
DISCOURSE_REDIS_PASSWORD: ‘xxx’
DISCOURSE_REDIS_PORT: 49456
DISCOURSE_MESSAGE_BUS_REDIS_ENABLED: true
DISCOURSE_MESSAGE_BUS_REDIS_HOST: ‘y.de’
DISCOURSE_MESSAGE_BUS_REDIS_PORT: 49456
DISCOURSE_MESSAGE_BUS_REDIS_PASSWORD: ‘xxx’
DISCOURSE_USE_S3: true
DISCOURSE_S3_REGION: whatever
DISCOURSE_S3_ENDPOINT: https://assets.xxx
DISCOURSE_S3_ACCESS_KEY_ID: ‘discourse-dev’
DISCOURSE_S3_SECRET_ACCESS_KEY: ‘xxx’
DISCOURSE_S3_CDN_URL: https://discourse-dev.assets.xxx
DISCOURSE_S3_BUCKET: ‘discourse-dev’
DISCOURSE_S3_BACKUP_BUCKET: ‘discourse-dev/backups’
DISCOURSE_BACKUP_LOCATION: s3
DISCOURSE_S3_INSTALL_CORS_RULE: false
volumes:
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone GitHub - discourse/docker_manager: Plugin for use with discourse docker image · GitHub
- git clone GitHub - discourse/discourse-cakeday: Show a birthday cake emoji beside the names of members on their join anniversary, or their actual birthday -- and a browsable directory of upcoming anniversaries / birthdays. · GitHub
- git clone GitHub - discourse/discourse-oauth2-basic: A basic OAuth2 plugin for use with Discourse · GitHub
#- git clone GitHub - discourse/discourse-bbcode: vBulletin BBCode plugin · GitHub
after_assets_precompile:
- exec:
cd: $home
cmd:
- sudo -E -u discourse bundle exec rake s3:upload_assets
run:
您是否在使用反向代理?您是否在设置中启用了 force_https?
是的,已启用 force_https。没有反向代理,只有内置的 nginx。
奇怪的是,其他使用 CDN 地址的 JS 文件都能正常工作,唯独 markdown-it 有问题。
我不太清楚该在代码的哪里排查,毕竟我不懂 Ruby。
![]()
还需要我提供哪些额外信息才能帮您找到解决方案?我是否需要检查一下代码?
嗨,有人知道如何解决这个问题吗?
你的配置有些奇怪。
你设置了 S3 CDN,但它和存储桶使用的是同一个 URL?
data-s3-cdn="https://discourse-dev.assets.schwarz"
data-s3-base-url="//discourse-dev.assets.schwarz"
与 Meta 的配置对比:
data-s3-cdn="https://d11a6trkgmumsb.cloudfront.net"
data-s3-base-url="//assets-meta-cdck-prod-meta.s3.dualstack.us-west-1.amazonaws.com"
加载动态脚本的代码会尝试将 S3_BASE_URL 替换为 S3_CDN:
是的,两个 URL 是相同的,因为我们使用 Minio 作为兼容 S3 的对象存储。
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.