繁体   English   中英

Django静态设置

[英]Django Static Setup

我遍历了无数答案和问题,试图找到一个确定的指南或方法,但是似乎每个人都有不同的方法。 有人可以向我解释如何在模板中提供静态文件吗?

假设我刚刚使用Django 1.4创建了一个全新的项目,那么我需要做些什么才能渲染图像? 我应该在哪里放置媒体和静态文件夹?

  1. 将您的静态文件放入<app>/static或向STATICFILES_DIRS添加绝对路径
  2. 配置Web服务器(不应使用Django提供静态文件)以提供STATIC_ROOT文件
  3. STATIC_URL指向网络服务器提供的基本URL
  4. 运行./manage.py collectstatic
  5. 一定要使用RequestContext在渲染调用和{{ STATIC_URL }}前缀路径
  6. 咖啡,轻拍背部

有关在Django之前运行Web服务器的更多信息。 Django实际上是一个应用程序服务器。 在提供静态文件方面,它的设计还没有任何好处。 因此,当DEBUG=False时,它主动拒绝这样做。 另外,不应将Django开发服务器用于生产。 这意味着Django始终都应该有东西。 它可能是WSGI服务器(例如gunicorn)或“真实”网络服务器(例如nginx或Apache)。

如果您正在运行反向代理(例如nginx或Apache),则可以将/static绑定到文件系统中的路径,并将其余流量传递给Django。 这意味着您的STATIC_URL可以是相对路径。 否则,您将需要使用绝对URL。

创建的项目应具有一个静态文件夹。 将所有资源(图像,...)放在其中。 然后,在HTML模板中,您可以引用STATIC_ROOT并添加资源路径(相对于静态文件夹)

这是官方文档:

如何管理静态文件: https : //docs.djangoproject.com/en/1.4/howto/static-files/

一般的静态文件: https : //docs.djangoproject.com/en/1.4/ref/contrib/staticfiles/

如果您打算在生产类型设置中进行部署,则应在此处阅读以下部分: https : //docs.djangoproject.com/en/1.4/howto/static-files/#staticfiles-production

通常,您将我们的静态和媒体文件夹放在django项目应用程序之外

  • 在设置中定义您的STATICFILES_DIRS,STATIC和MEDIA路径。
  • 在您的模板文件夹,urls.py,settings.py等旁边创建staticfiles文件夹...
  • 您无需创建媒体文件夹,因为它会在您上传图片时自动创建。
  • 在您的urlconf中放入以下内容:

     from django.conf.urls import patterns, include, url from django.contrib import admin from django.conf import settings from django.contrib.staticfiles.urls import staticfiles_urlpatterns from django.conf.urls.static import static admin.autodiscover() urlpatterns = patterns('', ............. ) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) urlpatterns += staticfiles_urlpatterns() 
  • 在模板中:

     {% load static %} <img src="{% static 'images.png' %}"> <img src="{{MEDIA_URL}}images.png"> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM