Django | Зачем использовать {% load stati c%} и заставить компилятор шаблонов работать больше? - PullRequest
0 голосов
/ 05 февраля 2020

Для stati c ресурсов, таких как images / CSS / Js Я могу напрямую использовать их путь

<link rel="stylesheet" href="/static/css/default.min.css">
#in app level templates:
<link rel="stylesheet" href="/static/myapp/css/app.min.css">

зачем добавлять беспорядок в шаблон с помощью:

{% load static %}
<link rel="stylesheet" href="{% static 'css/default.min.css' %}" />

, если только вы динамически добавляете часть пути или версии в конце URL. Я подозреваю, что шаблоны с {% load stati c%} будут менее производительными (могут игнорироваться, но все же почему?)

Пожалуйста, просим меня просветить, я думаю, что может быть веская причина.

Ответы [ 2 ]

0 голосов
/ 06 февраля 2020

Ну, вы как бы ответили на свой вопрос, когда сказали, если только вы не добавляете динамически часть пути, а это именно то, что вы делаете. И этому есть веская причина.

'stati c' - это ваш STATIC_URL. Забудьте о static_ root, это место, где вы «собираете данные c», а затем перемещаете его в производственное местоположение.

У меня где-то развернут портал Saas django, в производстве мой STATIC_URL (да 'stati c' становится следующим:

https://some-cdn-somewhere.com/me-static-assets/static/ Я позволяю некоторым производительным CDN обслуживать ресурсы stati c после перемещения каким-либо образом собранных файлов на него .

В качестве акцента я делаю это для повышения производительности, и вы можете решить использовать веб-сервер, такой как nginx, для обслуживания активов c, например: c и 1031 * очень эффективен для этого. Как правило, вы конфигурируете свой stati c url и позволяете nginx обслуживать его один из папки (STATIC_ ROOT), а другие URL-адреса по доверенности, чтобы сказать gunicorn.

Рассмотрите колодец написано django документы для получения дополнительной информации https://docs.djangoproject.com/en/3.0/howto/static-files/deployment/

0 голосов
/ 05 февраля 2020

Жесткое кодирование, как это, может создать несколько проблем на производстве. Вместо этого рекомендуется создать static root в настройках и всегда использовать это. Более того, если django знает, что это файл stati c, он будет смотреть не только в «жестко запрограммированном» месте, но и в других возможных местах.

...