我正在使用Django作为我的主力来构建应用程序.到目前为止一直都很好 - 指定数据库设置,配置静态目录,网址,视图等.但是,当我想要渲染我自己的美丽和自定义404.html和500.html页面时,麻烦开始潜行.
我阅读了有关自定义错误处理的文档,并在UrlsConf中设置了必要的配置,创建了相应的视图,并将404.html和500.html添加到了我的应用程序的模板目录(也在settings.py中指定).
但是文档说you can actually view custom error views until Debug is Off,所以我确实把它关掉来测试我的东西,那就是什么东西变得狂暴!
我不仅无法查看自定义404.html(实际上,它加载,但因为我的错误页面每个都包含一个图形错误消息 - 一些不错的图像),错误页面的源加载,但没有其他任何加载!甚至没有链接CSS或Javascript!
通常,一旦我设置DEBUG = False,所有视图将加载,但任何链接的内容(CSS,Javascript,图像等)将不会加载!发生了什么?关于静态文件和DEBUG设置有什么遗漏吗?
我runserver在我的本地计算机(Mac OS X)上运行Django的开发服务器()并且无法加载CSS文件.
以下是settings.py中的相关条目:
STATIC_ROOT = '/Users/username/Projects/mysite/static/'
STATIC_URL = '/static/'
STATICFILES_DIRS = (
'/Users/thaymore/Projects/mysite/cal/static',
)
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
#'django.contrib.staticfiles.finders.DefaultStorageFinder',
)
INSTALLED_APPS = (
# other apps ...
'django.contrib.staticfiles',
)
Run Code Online (Sandbox Code Playgroud)
在我的views.py中,我正在请求上下文:
return render_to_response("cal/main.html",dict(entries=entries),context_instance=RequestContext(request))
Run Code Online (Sandbox Code Playgroud)
在我的模板中{{ STATIC_URL }}正确呈现:
<link type="text/css" href="{{ STATIC_URL }}css/main.css" />
Run Code Online (Sandbox Code Playgroud)
变成:
<link type="text/css" href="/static/css/main.css"/>
Run Code Online (Sandbox Code Playgroud)
这是文件实际所在的位置.我还跑去collectstatic确保收集所有文件.
我的urls.py中还有以下几行:
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
urlpatterns += staticfiles_urlpatterns()
Run Code Online (Sandbox Code Playgroud)
我是Django的新手,所以我可能会错过一些简单的东西 - 感谢任何帮助.
在我的开发环境中,我因服务静态文件(js脚本和css)而出现间歇性故障.在Chrome的错误控制台中,我获得了404s.但是,如果我刷新这些项目,或直接访问这些网址,它们就可以正常使用.
这很烦人.
例:
GET http://127.0.0.1:8000/static/js/editor/xyz.js?v=1 404 (NOT FOUND)
Run Code Online (Sandbox Code Playgroud)
但如果我直接访问该网址就好了.如果我刷新页面几次,它将再次起作用.
有任何想法吗?
Chrome 14.0.835.202
Django==1.3
Fabric==1.0.1
Jinja2==2.5.5
PIL==1.1.7
Pygments==1.3.1
South==0.7.3
Sphinx==1.0.5
boto==2.0
chunks==0.1
django-devserver==0.2.1
django-pagination==1.0.7
django-sorting==0.1
django-storages==1.1.3
docutils==0.8
gunicorn==0.12.1
ipython==0.10.1
paramiko==1.7.6
pep8==0.6.1
psycopg2==2.2.2
pycrypto==2.0.1
python-dateutil==1.5
python-memcached==1.45
wsgiref==0.1.2
Run Code Online (Sandbox Code Playgroud) 好的,我的
Index.html是
<!DOCTYPE html>
<html>
<head>
<title>Kodeworms</title>
<link rel="stylesheet" href="{{ STATIC_URL }}css/style.css" />
</head>
<body class="logged-out">
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
style.css文件
.logged-out {
background-image: href=("{{ STATIC_URL }}img/landing.jpg") no-repeat center 30px;
background-size: 90%;
}
Run Code Online (Sandbox Code Playgroud)
现在我的index.html存储在*project_name/project_name/templates*中 ,我的style.css存储在*project_name/assets/css*中 ,图像存储在*project_name/assets/img*中
我的setting.py是
# Django settings for BE.
import os
import dj_database_url
here = lambda * x: os.path.join(os.path.abspath(os.path.dirname(__file__)), *x)
PROJECT_ROOT = here("..")
root = lambda * x: os.path.join(os.path.abspath(PROJECT_ROOT), *x)
DEBUG = True
TEMPLATE_DEBUG = DEBUG
ADMINS = (
# ('Your Name', 'your_email@example.com'),
)
MANAGERS = …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Django开发一个网站,遵循各种指南,文档和谷歌.我有一些平面页面设置需要访问图像/ CSS文件.
我的settings.py文件如下所示:
# Django settings for FirstBlog project.
DEBUG = True
TEMPLATE_DEBUG = DEBUG
ADMINS = (
# ('Your Name', 'your_email@example.com'),
)
MANAGERS = ADMINS
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
'NAME': 'db', # Or path to database file if using sqlite3.
'USER': '', # Not used with sqlite3.
'PASSWORD': '', # Not used with sqlite3.
'HOST': '', # Set to empty string for localhost. Not used with sqlite3.
'PORT': …Run Code Online (Sandbox Code Playgroud)