相关疑难解决方法(0)

为什么DEBUG = False设置使我的django静态文件访问失败?

我正在使用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设置有什么遗漏吗?

django django-views django-staticfiles

321
推荐指数
12
解决办法
10万
查看次数

Django - 无法加载静态CSS文件

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的新手,所以我可能会错过一些简单的东西 - 感谢任何帮助.

python django static-files

51
推荐指数
3
解决办法
7万
查看次数

Django dev服务器间歇性地无法提供静态文件

在我的开发环境中,我因服务静态文件(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)

django django-dev-server

14
推荐指数
1
解决办法
757
查看次数

Django给出了"GET /static/css/style.css HTTP/1.1"304 0

好的,我的

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)

html css python django django-staticfiles

5
推荐指数
1
解决办法
2万
查看次数

Django静态文件

我正在尝试使用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)

html python django

4
推荐指数
1
解决办法
2万
查看次数