我的本地机器在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)
它应该寻找以下文件:
以上所有文件都存在于磁盘上.
解决了
它在我尝试后现在有效:
chown -R www-data:www-data /usr/lib/python2.5/site-packages/projectname/*
Run Code Online (Sandbox Code Playgroud)
真奇怪.我不需要在远程服务器上执行此操作以使其工作.
有没有一种简单的方法可以关闭Django开发服务器中的静态文件缓存?
我正在使用标准命令启动服务器:
$ python manage.py runserver
Run Code Online (Sandbox Code Playgroud)
我已经settings.py配置为从/static我的Django项目目录中提供静态文件.我还有一个中间件类,它将Cache-Control头设置must-revalidate, no-cache为开发,但这似乎只会影响不在我的/static目录中的URL .
我正在开始一个项目并按照文档我没有成功包含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)
我有"你好世界"
但我没有我的形象或剧本. …
我担心我在这里不知所措,我检查了一些类似的问题,但似乎没有一个适用.
我正在我的笔记本电脑上运行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文件?(不工作的是光子模板.)
任何帮助,将不胜感激.
我正在尝试加载一个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"也没有用