django 改了静态文件但是页面没有变

2024-11-05 17:25:22
推荐回答(2个)
回答(1):

  django处理静态文件
  静态文件指的是js css 还有图片这些,配置方法如下
  1. 在设置文件(settings.py)中,installed_apps中添加 django.contrib.staticfiles
  然后设置static_url
  STATIC_URL = '/static/'
  2. 在模板中的使用方式如下
  {% load staticfiles %}
  My image
  这种方式提供的是一种相对路径,当你将环境切换到CDN的时候会方便很多
  当然也可以用简单一些的方法---直接提供一个静态文件的url,不过在CDN中就要修改才可以使用了
  /static/my_app/myexample.jpg
  3. 把你的文件都放在一个文件夹下,比如
  my_app/static/my_app/myimage.jpg
  注:当debug设置True的时候上面的方法可以,但是False的时候会提示not found的错误
  当debug设置为Fales的时候,设置方法如下(增加静态文件url,使用 django.contrib.staticfiles.views.serve()来寻找静态文件):
  from django.conf import settings
  from django.conf.urls.static import static
  urlpatterns = [
  # ... the rest of your URLconf goes here ...
  ] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
  注:也不推荐实际环境中用
  当你有多个静态文件目录的时候可以使用下面的方式,设置STATICFILES_DIRS:
  STATICFILES_DIRS = [
  os.path.join(BASE_DIR, "static"),
  '/var/www/static/',
  ]
  注:django寻找静态文件默认找到地一个就会返回,不再进行后续查找,所以要注意安排顺序及目录
  部署的步骤:
  1. 设置STATIC_ROOT:
  STATIC_ROOT = "/var/www/example.com/static/"
  2. 执行collectstatic命令:
  $ python manage.py collectstatic
  这会把静态文件拷贝到你设置的static_root目录下(这样可以更方便的和nignx集成,权限管理也更方便)

回答(2):

浏览器缓存了,清除浏览器历史,或者清除上网痕迹,忘了强制刷新就可以了,...因为这个我折腾了一下午...orz