테마 컴포넌트를 업데이트할 때 다음 오류가 발생합니다.
Failed to update Brand Header Theme Component
An empty string is not a valid JSON string.
/var/www/discourse/lib/theme_settings_manager/objects.rb:13:in `parse'
/var/www/discourse/lib/theme_settings_manager/objects.rb:13:in `value='
/var/www/discourse/app/models/theme.rb:760:in `update_setting'
/var/www/discourse/app/models/theme.rb:881:in `block (2 levels) in migrate_settings'
/var/www/discourse/app/models/theme.rb:880:in `each'
/var/www/discourse/app/models/theme.rb:880:in `block in migrate_settings'
/var/www/discourse/app/models/theme.rb:919:in `migrate_settings'
/var/www/discourse/app/models/remote_theme.rb:377:in `block in update_from_remote'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.1.3.4/lib/active_record/connection_adapters/abstract/transaction.rb:535:in `block in within_new_transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.1.3.4/lib/active_support/concurrency/null_lock.rb:9:in `synchronize'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.1.3.4/lib/active_record/connection_adapters/abstract/transaction.rb:532:in `within_new_transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.1.3.4/lib/active_record/connection_adapters/abstract/database_statements.rb:344:in `transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.1.3.4/lib/active_record/transactions.rb:212:in `transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.1.3.4/lib/active_record/transactions.rb:301:in `transaction'
/var/www/discourse/app/models/remote_theme.rb:383:in `update_from_remote'
이는 5b0c2da에서 f458dc9로 업데이트되는 GitHub - discourse/discourse-brand-header: Brand header theme component for Discourse · GitHub (Discourse가 3.2.4에서 3.3.0으로 업데이트되기 때문)에 관한 것입니다.
이 문제가 발생하는 이유는 “links” 필드가 비어 있고 업데이트 로직이 이를 처리하지 못하기 때문입니다 @tgxworld
우회 방법:
- “links” 필드에
foo,https://example.com,bar를 입력합니다. - 테마 컴포넌트를 업데이트합니다.
- 링크 편집기를 열어 해당 항목을 삭제합니다.
그러나 이 우회 방법은 자동화가 어렵습니다… ![]()