Лично я придерживался совета команды Django делать статические файлы CSS и JavaScript, обслуживаемые непосредственно сервером, а не через Django.Это не было проблемой и упростило многие вещи.Как правило, в любое время, когда я думаю, что мне нужен динамический файл CSS или JS, есть способ рефакторинга, поэтому я не делаю.
Например:
использование {{STATIC_URL}} в CSS для доступа к изображению
Я не уверен, какова переменная вашего {{ STATIC_URL }}
, но я обнаружил, что использование тега <base>
на моих страницах исправляет многие вещи.Я предполагаю, что это для фоновых изображений?Не могли бы вы обновить свой вопрос, чтобы привести пример?
Еще одна вещь, которую я сделал, - если мой JavaScript требует динамических данных, я помещу большую часть кода в библиотеку JavaScript, которую я выполняю как статический файл изатем поместите минимальный динамический материал в тег <script>
в конце страницы.Обычно я помещаю все это в объект (очень похожий на JSON), а затем просто передаю этот объект в функцию.Если подумать, вы можете просто взять все динамические вещи, сделать из них словарь в функции представления, закодировать его в JSON и передать через контекст.Тогда ваш шаблон страницы выглядит примерно так:
<html><head>
...
<script src="{{ STATIC_URL }}/js/foo.js"></script>
...
</head><body>
...
<script>
foo_main({{ foo_params_json|safe }});
</script>
</body></html>
Это упрощает повторное использование этого кода лот .