我可能在这里犯了很多错误,因为我仍然无法让静态文件在我的开发环境中正常工作,尽管我非常关注本教程。我有一种感觉,因为它在Django 1.6中的工作方式略有不同,我只能找到以前版本的答案。
这是我的目录结构:
mysite
├───app1
├───mysite
│ └───templates
├───resources
├───static
│ ├───css
│ ├───fonts
│ └───js
└───app2
我安装的应用程序,以证明我有静态文件:
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app1',
'app2',
)
我的模板和静态文件设置:
# Templates
TEMPLATE_DIRS = (
os.path.join(BASE_DIR, "mysite/templates"),
)
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.6/howto/static-files/
STATIC_URL = '/static/'
我甚至按照建议urls.py
执行了此操作:
urlpatterns = patterns('',
...
) + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
最后,我的要求:
{% load staticfiles %}
<link href="{% static "css/core.css" %}" rel="stylesheet">
如果我直接导航到http://127.0.0.1/static/css/core.css
,我会'css\core.css' could not be found
请告诉我我做错了什么= [
答案 0 :(得分:7)
由于静态目录没有在其中一个应用程序中“活动”(在您的情况下为app1
,app2
),因此django无法找到静态目录。因此,使用当前结构,您需要将静态目录添加到STATICFILES_DIRS
。
来自文档:
“您的项目可能还会包含与特定应用程序无关的静态资源。除了在应用程序中使用静态/目录外,您还可以在Django的设置文件中定义目录列表(STATICFILES_DIRS)还会查找静态文件。“
这样的事情:
STATICFILES_DIRS = (
os.path.join(BASE_DIR, "static"),
)
请参阅: https://docs.djangoproject.com/en/dev/ref/settings/#std:setting-STATICFILES_DIRS
希望这有帮助。