有没有人有关于在Django制作应用程序上提供静态文件的简单分步教程?我读了Django docs,听起来真的很复杂......我正在尝试使用不同的服务器(如lighttpd,nginx或cherokee)来提供静态文件的路径,但是设置它们对我来说都是希腊语。我下载了lighttpd,试图按照说明安装,并在几秒钟内收到错误。缺少这个或那个或者诸如此类的东西......我不是UNIX专家,而且我不擅长C / C ++,所以这一切./configure和MAKE安装对我来说都是胡言乱语...所以我想我的即时问题是:
非常感谢!
答案 0 :(得分:4)
抱歉,没有一步一步的教程。但这里有一个可能有所帮助的高级概述:
所以诀窍是你没有告诉Django将服务静态文件委托给特定的服务器。相反,你告诉httpd哪些网址是通过Django提供的,以及哪些网址是静态文件。
另一种说法是所有请求都来自Apache Web服务器。根据您在httpd.conf中指定的规则,Web服务器将决定请求是针对静态文件还是针对django生成的动态文件。如果它是静态文件,它将只提供文件。如果请求是针对动态文件的,它将通过modpython将请求传递给Django。
希望有所帮助。
答案 1 :(得分:1)
在开发中:
STATICFILES_DIRS应该包含所有静态文件所在的静态目录
STATIC_URL应为" / static /"如果你的文件在本地机器上,否则把基本URL放在这里,例如" http://example.com/"
INSTALLED_APPS应包含' django.contrib.staticfiles'
在模板中,加载staticfiles模块:
{% load staticfiles %}
..
..
<img src='{% static "images/test.png" %}' alt='img' />
生产中:
添加&#34; STATIC_ROOT&#34; django用来收集来自&#34; STATICFILES_DIRS&#34;的所有静态文件。对它
收集静态文件
$ python manage.py collectstatic
from . import settings
..
..
urlpatterns = patterns('',
..
url(r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root':settings.STATIC_ROOT)}),)
下面列出了更详细的文章:
http://blog.xjtian.com/post/52685286308/serving-static-files-in-django-more-complicated
http://agiliq.com/blog/2013/03/serving-static-files-in-django/
答案 2 :(得分:0)
已更新urls.py
对于Django 3.0.7,url(....)
格式在urls.py
中不再起作用。
您需要执行以下操作:
urls.py
:
from django.conf import settings # to import static in deployment
from django.conf.urls.static import static # to import static in deployment
....
urlpatterns = [
....
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) # to import static in deployment
参考:https://docs.djangoproject.com/en/3.0/howto/static-files/