0

我的文件夹结构如下:

mysite_new/
          manage.py
          mysite/
                 __init__.py
                 urls.py
                 setting.py
                 wsgi.py
                 templates/
                          default.html
                 static/
                        admin/
                              img/
                                  logo.png

          ticket/
                __init__.py
                models.py
                view.py
                urls.py
                ......

在setting.py中,我设置

STATIC_URL = '/static/'
STATIC_ROOT = '' 
STATICFILES_DIRS = (

)

在ticket/urls.py中我设置

from django.conf import settings
from django.conf.urls.static import static
urlpatterns += static(settings.STATIC_URL, document_root = settings.STATIC_ROOT )

默认.html

<html>
<head>
<img src="{{ STATIC_URL }}admin/img/logo.jpg" />

</head>
<body>
</body>
</html>  

然后我尝试访问包含 default.html 的页面,未显示 logo.jpg。表明在此处输入图像描述

所以可能是静态文件夹没有正确链接到我的项目,我的问题是谁能告诉我如何实现这个?我应该在setting.py(STATIC_ROOT, STATIC_URL, STATICFILES_DIRS) 中设置什么,urls.py以及如何修改default.html. 请在很短的时间内给出详细的步骤。谢谢

4

1 回答 1

2

我认为对于开发模式,您需要设置

PROJECT_ROOT = os.path.abspath(os.path.dirname(__file__))
STATICFILES_DIRS = (
    os.path.join(PROJECT_ROOT, 'static'),
)
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)

并在 urls.py

from django.contrib.staticfiles.urls import staticfiles_urlpatterns
urlpatterns += staticfiles_urlpatterns()

要收集静态,您需要像这样设置 STATIC_ROOT:

STATIC_ROOT = os.path.join(PROJECT_ROOT, '..', 'static')
于 2012-12-07T15:01:10.757 回答