Django静态安装

时间:2013-03-07 21:41:14

标签: python django python-2.7

我已经看过无数的答案和问题,试图找到一个明确的指南或方法来做到这一点,但似乎每个人都有不同的方式。有人可以直接向我解释如何在模板中提供静态文件吗?

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

4 个答案:

答案 0 :(得分:2)

  1. 将您的静态文件放入<app>/static或添加STATICFILES_DIRS
  2. 的绝对路径
  3. 配置您的网络服务器(您不应该使用Django提供静态文件)来提供STATIC_ROOT
  4. 中的文件
  5. STATIC_URL指向Web服务器所服务的基本URL
  6. 运行./manage.py collectstatic
  7. 请务必在渲染通话中使用RequestContext,并在{{ STATIC_URL }}使用前缀
  8. 咖啡,拍拍自己背上
  9. 关于在Django面前运行Web服务器的更多信息。 Django实际上是一个应用服务器。它的设计并不是为了提供静态文件。这就是为什么它在DEBUG=False时主动拒绝这样做的原因。此外,Django开发服务器不应该用于生产。这意味着任何时候都应该在Django前面有一些东西。它可能是一个WSGI服务器,如gunicorn或“真正的”Web服务器,如nginx或Apache。

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

以下是官方文件:

如何管理静态文件: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项目应用程序之外

答案 3 :(得分:0)

  • 在设置中定义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">