在Django产品教程上提供静态文件
有人有关于在Django生产应用程序上提供静态文件的简单分步教程吗?我读了《Django》,听起来很复杂。。。我正在尝试使用不同的服务器(如lighttpd、nginx或cherokee)来提供静态文件,但设置这些服务器对我来说完全是一窍不通。我下载了lighttpd,试图按照说明进行安装,几秒钟之内就出现了一个错误。错过这个或那个什么的。。。我不是UNIX高手,也不擅长C/C++,所以所有这些./configure和makeinstall对我来说都是胡言乱语。。。所以我想我现在的问题是:在Django产品教程上提供静态文件,django,static,nginx,lighttpd,cherokee,Django,Static,Nginx,Lighttpd,Cherokee,有人有关于在Django生产应用程序上提供静态文件的简单分步教程吗?我读了《Django》,听起来很复杂。。。我正在尝试使用不同的服务器(如lighttpd、nginx或cherokee)来提供静态文件,但设置这些服务器对我来说完全是一窍不通。我下载了lighttpd,试图按照说明进行安装,几秒钟之内就出现了一个错误。错过这个或那个什么的。。。我不是UNIX高手,也不擅长C/C++,所以所有这些./configure和makeinstall对我来说都是胡言乱语。。。所以我想我现在的问题是: 您建
非常感谢 对不起,没有分步教程。但这里有一个高层次的概述可能会有所帮助:
STATICFILES\u DIRS
应该包含所有静态文件所在的所有静态目录
STATIC\u URL
应该是/STATIC/
,如果您的文件在本地计算机中,否则请将基本URL放在这里,例如http://example.com/
安装的应用程序应包括django.contrib.staticfiles
在模板中,加载staticfiles模块:
{% load staticfiles %}
<img src='{% static "images/test.png" %}' alt='img' />
将路径添加到url.py:
from . import settings
urlpatterns = patterns('',
..
url(r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root':settings.STATIC_ROOT)}),)
来自。导入设置
urlpatterns=模式(“”,
..
url(r'^static/(?P.*)','django.views.static.service',{'document\u root':settings.static\u root)})
更详细的文章如下:
为URL.py更新
Django 3.0.7的url(..)
格式在url.py
中不再适用
然后您需要执行以下操作:
url.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
参考资料:您在找这个吗?hhttp://docs.djangoproject.com/en/1.3/howto/static-files/ 这似乎是一步一步的。是的,我读过那个医生。我觉得不够详细。例如,这里有我的第二个问题的答案吗?我可能错过了。。。。谢谢@拉比:在重新阅读了你的问题(这是相当令人困惑的)之后,我认为这是错误的链接。很抱歉让人困惑@拉比:不要道歉。解决这个问题。简化集中现在,wsgi或uwsgi绝对是首选的方式。mod_python速度很慢,很快将不受支持。谢谢你的回复。是的,我明白你的意思。我从Django官方文件中读到了很多。看起来您正在描述如何通过Apache为应用程序本身提供服务。你是说也要通过Apache提供静态文件吗?我想医生说那不是推荐的路线。你觉得可以吗?我选择的路径是通过不同的服务器(如lighttpd或cherokee)提供静态文件。然而,我对从源代码进行制作和安装以及手动配置一切都感到不舒服。我也不知道lighttpd/cherokee会如何与我的Django应用程序交谈。@rabbid:从Apache提供静态媒体服务没问题——你不想做的是使用Django的开发服务器为你的应用程序及其媒体提供服务。@mipadi:当然,我不会在生产中使用开发服务器。我想我会先尝试从同一个Apache服务器提供静态文件。谢谢@rabbid:我认为文档实际上告诉您使用Apache来服务器静态文件。它们告诉您不要在生产环境中使用开发服务器,也不要通过Django为静态文件提供服务器。
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