相关疑难解决方法(0)

Django TemplateDoesNotExist?

我的本地机器在Ubuntu 8.10上运行Python 2.5和Nginx,Django是从最新的开发中继构建的.

对于我请求的每个URL,它会抛出:

TemplateDoesNotExist位于/​​ appname/path appname/template_name.html

Django尝试按以下顺序加载这些模板:*使用loader django.template.loaders.filesystem.function:*使用loader django.template.loaders.app_directories.function:

TEMPLATE_DIRS('/usr/lib/python2.5/site-packages/projectname/templates',)

在这种情况下,它是否在寻找/usr/lib/python2.5/site-packages/projectname/templates/appname/template_name.html?奇怪的是这个文件确实存在于磁盘上.为什么Django找不到它?

我在Ubuntu 9.04上使用Python 2.6在远程服务器上运行相同的应用程序,没有这样的问题.其他设置是相同的.

我的本地计算机上是否有任何配置错误,或者可能导致此类错误的内容我应该查看?

在我的settings.py中,我指定了:

SETTINGS_PATH = os.path.normpath(os.path.dirname(__file__))
# Find templates in the same folder as settings.py.
TEMPLATE_DIRS = (
    os.path.join(SETTINGS_PATH, 'templates'),
)
Run Code Online (Sandbox Code Playgroud)

它应该寻找以下文件:

  • /usr/lib/python2.5/site-packages/projectname/templates/appname1/template1.html
  • /usr/lib/python2.5/site-packages/projectname/templates/appname1/template2.html
  • /usr/lib/python2.5/site-packages/projectname/templates/appname2/template3.html
  • ...

以上所有文件都存在于磁盘上.

解决了

它在我尝试后现在有效:

chown -R www-data:www-data /usr/lib/python2.5/site-packages/projectname/*
Run Code Online (Sandbox Code Playgroud)

真奇怪.我不需要在远程服务器上执行此操作以使其工作.

django

135
推荐指数
9
解决办法
21万
查看次数

关闭Django开发服务器中的静态文件缓存

有没有一种简单的方法可以关闭Django开发服务器中的静态文件缓存?

我正在使用标准命令启动服务器:

$ python manage.py runserver
Run Code Online (Sandbox Code Playgroud)

我已经settings.py配置为从/static我的Django项目目录中提供静态文件.我还有一个中间件类,它将Cache-Control头设置must-revalidate, no-cache为开发,但这似乎只会影响不在我的/static目录中的URL .

python django

29
推荐指数
6
解决办法
2万
查看次数

django如何在模板中包含javascript

我正在开始一个项目并按照文档我没有成功包含javascript.

这是我的设置:

STATIC_URL = '/static/'

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, "static"),
)

STATIC_ROOT = '/static/'

TEMPLATE_DIRS = (
    os.path.join(BASE_DIR, 'templates'),
)
Run Code Online (Sandbox Code Playgroud)

所以我在我的项目中使用javascript文件创建了一个静态文件夹.

MyProject的/静态/ app.js

我的urls.py:

urlpatterns = [
    url(r'^$', 'app.views.home'),
    url(r'^admin/', include(admin.site.urls)),
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
Run Code Online (Sandbox Code Playgroud)

在我的模板中:这是myproject/templates/base.html:

<!DOCTYPE html>
<head>
  {% load static %}
  <script src="{% static 'app.js' %}"></script>   
  <title>Site</title>
</head>
<body>
<img src="{% static 'img.png' %}" alt="Mon image" />
  {% block content %}{% endblock %}
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

我的另一个模板:

{% block content %}
    hello world
{% endblock %}
Run Code Online (Sandbox Code Playgroud)

我有"你好世界"

http://127.0.0.1:8000/

但我没有我的形象或剧本. …

javascript python django static include

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

开发中的Django站点:CSS没有加载所有页面

我担心我在这里不知所措,我检查了一些类似的问题,但似乎没有一个适用.

我正在我的笔记本电脑上运行django developpement服务器.我也用它来提供静态文件.我在静态根目录中有一个文件夹,其中包含2个名为base.html的模板的CSS.

这是有效的那个部分:

<head>
    <title>| Entries | Latest entries</title>
    <link rel="stylesheet" type="text/css" href="/static/css/serenity.css" />
</head>
Run Code Online (Sandbox Code Playgroud)

这是一个没有:

<head>
    <title>Latest Photo Galleries</title>
    <link rel="stylesheet" type="text/css" href="/static/css/photologue.css" />
</head>
Run Code Online (Sandbox Code Playgroud)

urls.py:

    (r'^static/(?P<path>.*)$', 'django.views.static.serve',{'document_root': settings.STATIC_ROOT}),
Run Code Online (Sandbox Code Playgroud)

和静态URL:

    STATIC_URL = '/static/'
Run Code Online (Sandbox Code Playgroud)

STATIC_ROOT是绝对路径.

当我查看源代码并尝试打开指向css的链接时,我得到了404(未找到)

为什么Django为一个app而不是另一个应用程序提供css文件?(不工作的是光子模板.)

任何帮助,将不胜感激.

django django-templates

3
推荐指数
1
解决办法
6800
查看次数

HTML没有加载CSS

我正在尝试加载一个css文件.我试过了:

<link href="./css/style.css" rel="stylesheet" type="text/css">
Run Code Online (Sandbox Code Playgroud)

和:

<link href="css/style.css" rel="stylesheet" type="text/css">
Run Code Online (Sandbox Code Playgroud)

我甚至将它移动到与html相同的目录,并尝试了上述两个选项而没有名称中的"css"目录.

我尝试刷新页面,并将我的CSS通过W3学校验证器并通过..

我不是网络开发人员所以我不熟悉这些问题.有谁知道它是什么?

编辑:错误是

[02/Jun/2014 10:37:23] "GET /css/style.css HTTP/1.1" 404 1953
Run Code Online (Sandbox Code Playgroud)

我的IDE(PyCharm)识别它的存在,它在运行时无法识别.

它目前位于另一个名为"css"的目录中.我已将它移动到同一目录之间,而"css"也没有用

html css django

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

标签 统计

django ×5

python ×2

css ×1

django-templates ×1

html ×1

include ×1

javascript ×1

static ×1