【发布时间】:2018-02-16 08:07:11
【问题描述】:
当第三方应用程序的静态文件在带有runserver 的浏览器中提供时,它不会在我的 Django 站点中更新。
这是我的文件结构(还有更多静态文件):
- mysite
- mysite
- settings.py
- wsgi.py
. . .
- myapp
- templates
- base.html
- myapp.html
- models.py
- forms.py
. . .
- static
- MyApp
- mystyle.css
- autocomplete-light
- select2.css
base.html:
{% load static %}
<!DOCTYPE html>
<html>
<head>
<title>
{% block title %}Portal{% endblock title %}
</title>
{% block stylesheets %}
<link rel="stylesheet" type="text/css" href="{% static 'myapp/mystyle.css' %}?{% now "U" %}"/>
{% endblock stylesheets %}
</head>
<body>
{% block content %}
{% endblock content %}
</body>
<footer>
{% block footer %}
{% endblock footer %}
</footer>
</html>
myapp.html:
{% extends "myapp/base.html" %}
{% load static %}
{% load crispy_forms_tags %}
{% block title %}My App{% endblock title %}
{% block stylesheets %}
{{ block.super }}
{% endblock stylesheets %}
{% block content %}
{% crispy formset helper %}
{% endblock content %}
{% block footer %}
<script type="text/javascript" src="{% static 'admin/js/vendor/jquery/jquery.js' %}?{% now "U" %}"></script>
{{ formset.media }}
{% endblock %}
settings.py(相关部分):
STATIC_ROOT = 'C:/Users/username/mysite/static/'
STATIC_URL = '/static/'
我使用python manage.py collectstatic 将我的应用程序和第三方应用程序(django-autocomplete-light)的静态文件收集到STATIC_ROOT。它们存在于 STATIC_ROOT 中。然后我用runserver 为我的网站提供服务。静态文件与站点一起加载,它们的路径匹配回STATIC_ROOT。当我编辑静态文件(即自动完成应用程序的select2.css)时,更改显示在STATIC_ROOT 中。但是,它们不会显示在浏览器中。
我已尝试清除缓存、在各种浏览器中为站点提供服务、终止/重新启动 runserver、终止/重新启动我的文本编辑器以及重新运行 collectstatic。这些尝试都没有奏效 - 加载站点时静态文件根本不会更新。
如何让静态文件在浏览器中更新?我想我可能缺少settings.py 中的设置,或者可能是{{ formset.media }} 的问题。不过,我很茫然。
【问题讨论】:
-
我已经阅读了该内容,但我认为我的设置方式没有任何问题。你在想什么?
-
可能需要重启并清除所有缓存,可能您的浏览器返回一个缓存文件(删除浏览器历史记录)
-
正如我在问题中提到的,我已经采取了所有这些步骤。这不是浏览器问题。
标签: python django browser django-autocomplete-light