Подтвердить что ты не робот

В чем разница между использованием {{STATIC_URL}} и {% static%}

Всюду по документации django и большому количеству учебников люди, похоже, свободно выбирают между тегами {% static %} и используя {{ STATIC_URL }} с правильным процессором контекста.

Может кто-то объяснить, в чем разница между ними, и какие-либо преимущества там могут быть связаны друг с другом.

4b9b3361

Ответ 1

Аннотация

Тег {% static %} тега знает о вашем STATICFILES_STORAGE, используя параметр STATIC_URL.

Правило большого пальца

Используйте тег шаблона.

Вручную конкатенация - это плохая практика ( "нужна ли мне косая черта?" ) и в конечном итоге укусит вас, как правило, когда вы решите изменить хранение статических файлов.

Примеры

Аутентифицированные URL

Вот пример. Возможно, вы захотите использовать AWS S3 для хостинга статических файлов, но не публиковать свои файлы. Затем вы будете обслуживать тех, кто использует аутентифицированные URL-адреса AWS S3.

Правильный URL-адрес будет выглядеть примерно так:

 https://s3.amazonaws.com/bucket/file.ext?signature=1234

Тег шаблона {% static %} позволит вам добавить подпись. Использование STATIC_URL не будет.

Отпечатанные отпечатки URL

Аналогичным образом, если ваши статические файлы хранят отпечатки пальцев, ваши файлы, используя STATIC_URL, не будут работать.