статические файлы django не обновляются в режиме реального времени - PullRequest
0 голосов
/ 29 апреля 2018

Прошло много времени с тех пор, как я запустил свой веб-сайт, используя django , поэтому я решил внести некоторые изменения в некоторые файлы CSS и JS.

После их изменения ни одно из новых изменений не было обновлено на сайте. Я знаю, что файлы могли быть кэшированы, но я прочитал, что существует метод, который заставляет сервер обновлять файлы, добавляя ?version=x после пути к файлу.

Например: <link rel="stylesheet" type="text/css" href="style.css?version=1">

Проблема в том, что с django я не так точно ссылался на статические файлы, вместо этого мне пришлось использовать некоторую jinja logic .

Пример: <link rel="stylesheet" type="text/css" href="{% static mainpage/HomePage.css' %}" />

Я попытался добавить ?version=1 в конец пути к файлу для моего, но после того, как я просмотрел веб-сайт в своем браузере, некоторые css, похоже, пропали, поэтому я решил вернуться к своей исходной ссылке.

Кто-нибудь знает, как я могу применить решение о добавлении ?version=1 к моему делу? Я довольно новичок в CSS и HTML, и я был бы очень благодарен за любую помощь!

Ответы [ 2 ]

0 голосов
/ 04 мая 2018

Решение моей проблемы было на самом деле очень простым!

Я не знал, что мне нужно запустить python3 manage.py collectstatic, чтобы увидеть изменения в статических файлах, когда они уже в работе.

Так что да, в следующий раз, когда вы внесете какие-либо изменения в статические файлы и захотите увидеть обновление на своем веб-сайте, вы должны запустить collectstatic .

Надеюсь, это поможет любому, кто был так же смущен, как и я!

0 голосов
/ 29 апреля 2018

Попробуйте использовать «пустой кэш и полную перезагрузку» (щелкните правой кнопкой мыши кнопку обновления с помощью инструментов open dev в браузере (Google Chrome)), чтобы подтвердить, что проблема вызвана кешем. Если это так, и ваши изменения появляются после полной перезагрузки, настройте ManifestStaticFilesStorage https://docs.djangoproject.com/en/2.0/ref/contrib/staticfiles/#manifeststaticfilesstorage для решения этой проблемы. Он добавит хеш файла к его имени, поэтому любое изменение содержимого файла приведет к изменению имени, и браузер загрузит новый файл.

...