I configured a logo in the site settings, but the logo’s URL is missing the default port, i.e. the logo URL looks like this http://localhost/uploads/… rather than http://localhost:3000/uploads/….
I’m starting the development server like this:
RAILS_ENV=development bundle exec rails server
I found that Discourse.base_url is set to "http://localhost" and in config/database.yml, I find this note for the development.hostnames key:
### Don't include the port number here.
Change the "port" site setting instead, at /admin/site_settings.
However, such a site setting does not exist. What do I do?
It’s the default, though, isn’t it? That one has to set the hidden port setting is not at all obvious, hence seeing a logo in the development environment not load is unexpected. In other words, setting a custom logo should just work.
Eu tive o problema oposto ao do autor da postagem original ao configurar um site de desenvolvimento ontem: estou executando meu servidor de desenvolvimento atrás de um proxy Nginx, então quero URLs limpas, mas não importa o que eu mudasse nas minhas configurações, o Discourse continuava adicionando :3000 a muitos dos meus links internos, incluindo o logotipo do site. Acabei rastreando isso até as linhas 291 a 293 em lib/discourse.rb:
if Rails.env.development? && SiteSetting.port.blank?
url << ":#{ENV["UNICORN_PORT"] || 3000}"
end
Comentar essas linhas fez com que meu logotipo e outros links funcionassem corretamente, embora eu não saiba se isso pode levar a outros problemas no futuro. Parece um pouco contra-intuitivo substituir o SiteSetting.port dessa maneira.
Brinquei um pouco mais com isso e parece que tudo funciona corretamente se eu apenas definir SiteSetting.port = 443 e também marcar a caixa ‘forçar https’ (e imagino que também funcionaria com a porta 80 e sem https). Eu tinha lido em algum lugar que deveria deixar as configurações de porta vazias, mas acho que era um conselho ruim.