Спасибо! Я также нашел Замена SVG-икон по умолчанию Discourse на пользовательские иконки в теме
В итоге я встроил SVG-спрайт напрямую в файл Header, так как загрузка и переименование, как описано в статье, у меня не сработали (хотя, возможно, это ошибка с моей стороны).
Итак, мой Header выглядит так:
<svg width="0" height="0" class="hidden" style="display: none;">
<symbol id="myicon-search" ..... </symbol>
<!-- все мои символы здесь... -->
</svg>
<script type="text/discourse-plugin" version="0.8">
api.replaceIcon('search', 'myicon-search');
</script>
И это легко поддерживать.
Я использую генератор SVG-спрайтов на https://svgsprit.es, чтобы убедиться, что формат правильный.