Использование дополнительного файла CSS с Mkdocs, размещенным на ReadTheDocs

Я написал несколько пользовательских CSS, которые я хотел бы включить на сайт Mkdocs, размещенный на ReadTheDocs. Это не работает, потому что RTD не обслуживает файл CSS.

У меня есть .readthedocs.yml файл, который просит RTD использовать Mkdocs:

version: 2
mkdocs:
  configuration: .mkdocs.yml

Мой .mkdocs.yml файл ссылается на тот факт, что я использую собственный файл CSS:

docs_dir: my-docs-directory
theme:
  name: 'material'
extra_css:
  - '.mkdocs.material.css'

ReadTheDocs сообщает, что документы созданы нормально, но когда я загружаю их, пользовательский CSS не действует. Если я открываю консоль браузера, я вижу эту ошибку:

Отказался от применения стиля с 'https://private-site.readthedocs-hosted.com/en/latest/.mkdocs.material.css ', потому что его тип MIME (' text / html ') не является поддерживаемым типом MIME таблицы стилей, и включена строгая проверка MIME.

Если я открою URL-адрес файла CSS на отдельной вкладке, я вижу страницу «404 - не найдено».

Я попытался включить файл CSS как в корень (где .readthedocs.yml и .mkdocs.yml живут), так и в каталог документов (my-docs-directory), но ни один из них не работал.

Я думаю, мне нужно, чтобы RTD каким-то образом знал, что файл CSS должен быть статическим, но все рекомендации, которые я мог найти по этому поводу, относятся к Sphinx.

Пожалуйста помоги! Спасибо!


person adam smith    schedule 09.07.2019    source источник


Ответы (1)


Я считаю, что эта проблема связана с точкой в ​​начале .mkdocs.material.css. Похоже, что MkDocs (mkdocs build, я использовал MkDocs v1.0) не будет копировать скрытые файлы - точка в начале обозначает скрытый файл в системах Unix - в выходной каталог. Я думаю, что если вы переименуете файл в mkdocs.material.css без начальной точки и обновите ссылку в своем mkdocs.yml, он должен работать.

Более загадочное сообщение об ошибке, которое вы видите в разделе «Прочитать документы» (Refused to apply style ...), связано с тем, что тег ссылки (<link>) на файл CSS все еще генерируется в выводе сборки, но MkDocs фактически не копировал файл CSS, потому что он был скрыт. В результате он дает 404. Read the Docs отправляет заголовок, сообщающий браузерам, что нужно выполнять строгую проверку MIME, которая является важной мерой безопасности при обработке файлов, загруженных пользователем. Поскольку есть ссылка на файл CSS, но ответ - 404 с HTML, браузер отклоняет стиль.

person davidfischer    schedule 09.07.2019
comment
Ах, я упустил момент. Хороший улов. Теперь, когда я это вижу, я уверен, что проблема именно в этом. Страница ошибки 404 - это HTML, а не CSS, который вызывает сообщение об ошибке. - person Waylan; 09.07.2019