4

我可能在这里做错了很多事情,因为尽管密切关注教程,我仍然无法让静态文件在我的开发环境中正常工作。我有一种感觉,因为它在 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

请告诉我我做错了什么=[

4

1 回答 1

7

由于静态目录不在其中一个应用程序中“存在”(app1app2您的情况下为 ),因此 django 找不到静态目录。因此,使用您当前的结构,您需要将静态目录添加到STATICFILES_DIRS.

从文档中:

“您的项目可能还会有与特定应用程序无关的静态资产。除了在应用程序中使用静态/目录之外,您还可以在设置文件中定义目录列表 (STATICFILES_DIRS),Django 也会在其中查看用于静态文件。”

像这样的东西:

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

请参阅: https ://docs.djangoproject.com/en/dev/ref/settings/#std:setting-STATICFILES_DIRS

希望这可以帮助。

于 2013-11-10T15:37:53.730 回答