Bri*_*6ko 6 django static file css3 python-2.7
我整天都在度过,没有任何作品.我在这里看到过至少20篇关于相同主题的帖子,他们对不同的建议有所不同,对我来说没什么用.使用Python 2.7运行Django 1.6.+我正在尝试从django教程加载民意调查应用程序的CSS.
项目布局
Project
|-polls
|-static
|-polls
style.css
|static
Run Code Online (Sandbox Code Playgroud)
这是settings.py
STATIC_URL = '/static/'
STATIC_ROOT = '/home/bri6ko/DjangoProjects/django1.6/PoolsDjangoProject/static'
Run Code Online (Sandbox Code Playgroud)
模板代码
{% load staticfiles %}
<link rel="stylesheet" type="text/css" href="{% static 'polls/style.css' %}">
Run Code Online (Sandbox Code Playgroud)
urls.py
urlpatterns = patterns(...)+ static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
Run Code Online (Sandbox Code Playgroud)
民调/ urls.py
urlpatterns = patterns(....,url(r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': '/home/bri6ko/DjangoProjects/django1.6/PoolsDjangoProject/'}),)
Run Code Online (Sandbox Code Playgroud)
运行之后:python manage.py collectstatic,收集所有内容,并使用admin和polls文件夹和文件相应地填充root上的静态文件夹.
我启动服务器:python manage.py runserver一切正常,除了没有加载css
这是我在检查html时从Chrome控制台获得的内容
....
<link rel="stylesheet" type="text/css" href="/static/polls/style.css">
....
Run Code Online (Sandbox Code Playgroud)
看起来很好,但提供以下输出
[16/Nov/2013 00:44:41] "GET / HTTP/1.1" 404 2141
[16/Nov/2013 00:44:45] "GET /polls/ HTTP/1.1" 200 820
[16/Nov/2013 00:44:45] "GET /static/polls/style.css HTTP/1.1" 404 1649
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激.我一步一步地跟着一切.我不知道该怎么办了
UPDATE
DEBUG=True
Run Code Online (Sandbox Code Playgroud)
完整的urls.py
from django.conf.urls import patterns, include, url
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
from django.contrib import admin
from PoolsDjangoProject import settings
from django.conf.urls.static import static
admin.autodiscover()
urlpatterns = patterns('',
# Examples:
# url(r'^$', 'PoolsDjangoProject.views.home', name='home'),
# url(r'^blog/', include('blog.urls')),
url(r'^polls/', include('polls.urls', namespace='polls')),
url(r'^admin/', include(admin.site.urls)),
) + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
Run Code Online (Sandbox Code Playgroud)
完整民意调查/ urls.py
来自django.conf.urls导入模式,url导入视图
urlpatterns = patterns('',
url(r'^$', views.IndexView.as_view(), name='index'),
url(r'^(?P<pk>\d+)/$', views.DetailView.as_view(), name='detail'),
url(r'^(?P<pk>\d+)/results/$', views.ResultsView.as_view(),name='results'),
url(r'^(?P<poll_id>\d+)/vote/$', 'polls.views.vote', name='votes'),
url(r'^static/(?P<path>.*)$', 'django.views.static.serve',
{'document_root': '/home/bri6ko/DjangoProjects/django1.6/PoolsDjangoProject/'}),
)
Run Code Online (Sandbox Code Playgroud)
当我尝试访问时
http://127.0.0.1:8000/static/polls/style.css
Run Code Online (Sandbox Code Playgroud)
我明白了
Page not found (404)
'polls/style.css' could not be found
Run Code Online (Sandbox Code Playgroud)
我发现有必要在执行完步骤后重新启动正在运行的服务器
https://docs.djangoproject.com/en/1.6/intro/tutorial06/#customize-your-app-s-look-and-feel
为了获取新创建的静态目录.该步骤未在教程中列出.我已经开了一张票,要求加入.
我意识到这个答案不太可能对你的具体情况有所帮助,但是在搜索将静态目录添加到示例民意调查应用程序的问题时,这个问题在Google中突出显现.
首先必须知道 Django 不负责在生产服务器上提供静态文件。然而,在DEBUG=True开发过程中,为了调试,它确实为他们服务。
debug=true用于在您无需执行任何操作时提供静态文件。我不知道为什么它会让新手对如何设置感到困惑。下面的内容应该可以帮助您清楚地为生产和开发模式创建静态文件
开发模式:时DEBUG=True
django-admin.py startproject mysitemanage.py createapp myappmyapp到INSTALLED_APPSsettings.py中myappdir中创建一个文件夹staticmyapp/static目录中,保存一个文件myfile.cssSTATIC_ROOT在 settings.py 中,提供用于存储静态文件的文件夹的有效地址。可能类似于os.path.join(os.path.abspath(os.path.dirname(__file__)), "mystatic")如果您想将收集的文件存储在mysite/mysite/mystatic.manage.py collectstatic; 现在您必须查看在上面提到的目录中收集的静态文件。如果它不存在,它也应该创建一个。您可以随意放置任何目录。http://127.0.0.1:8000/static/myfile.css