对不起,我知道有很多次问过类似的问题......我真的很抱歉再问一次,但我遇到这么多麻烦(我花了好几个小时尝试一切,但是我只是觉得我没有取得任何进展,我以为我会要求一些具体的帮助。
我正在尝试在Dreamhost上设置Django应用。我正在使用Django 1.5通过virtualenv工作得很好。但是,Django似乎无法找到我的静态文件。我的设置如下:
我的网站目录:
~/distracti.co.uk $ tree
.
├── distracti
│ ├── distracti
│ │ ├── __init__.py
│ │ ├── settings.py
│ │ ├── urls.py
│ │ └── wsgi.py
│ ├── manage.py
│ └── polls
│ ├── __init__.py
│ ├── admin.py
│ ├── models.py
│ ├── static
│ │ ├── images
│ │ │ └── test.png
│ │ └── style.css
│ ├── templates
│ │ └── polls
│ │ ├── index.html
│ │ └── style.css
│ ├── tests.py
│ ├── urls.py
│ └── views.py
├── django-setup.py
├── passenger_wsgi.py
├── public
│ ├── favicon.gif
│ ├── favicon.ico
│ └── quickstart.html
├── static
└── tmp
├── default_passenger_wsgi.py
├── old_passenger_wsgi.py
├── passenger_wsgi.py
└── restart.txt
10 directories, 24 files
〜/ distracti.co.uk / distracti / distracti / settings.py的重要一点(我认为):
# Absolute path to the directory static files should be collected to.
# Don't put anything in this directory yourself; store your static files
# in apps' "static/" subdirectories and in STATICFILES_DIRS.
# Example: "/var/www/example.com/static/"
STATIC_ROOT = '/home/<myusername>/distracti.co.uk/static/'
# URL prefix for static files.
# Example: "http://example.com/static/", "http://static.example.com/"
STATIC_URL = '/static/'
# Additional locations of static files
STATICFILES_DIRS = (
# Put strings here, like "/home/html/static" or "C:/www/django/static".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
)
TEMPLATE_CONTEXT_PROCESSORS = (
'django.core.context_processors.static',
'django.contrib.auth.context_processors.auth',
#... other context processors
)
...
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
# Uncomment the next line to enable the admin:
# 'django.contrib.admin',
# Uncomment the next line to enable admin documentation:
# 'django.contrib.admindocs',
'polls',
)
然后我可以运行
python manage.py collectstatic
我的特定于应用程序的静态文件(以及许多Django管理静态文件)被收集到我的STATIC_ROOT文件夹中:
73 static files copied.
~/distracti.co.uk $ ls static/ static/images
static/:
admin images style.css
static/images:
test.png
以下是我的index.html文件的顶部,该文件提供给浏览器:
{% load staticfiles %}
<head>
<link rel="stylesheet" type="text/css" href="{% static 'style.css' %}" />
</head>
<img src="{% static 'images/test.png' %}">
我可以说这个部分至少有效,因为链接在我的浏览器中显示为
<link rel="stylesheet" type="text/css" href="/static/style.css">
我的想法这将起作用,Django将从href字符串中删除STATIC_URL('/ static /'),然后使用该字符串的其余部分作为查找的相对位置STATIC_ROOT目录中的文件。所以假设剩下的是'style.css',我会认为Django能够在我的STATIC_ROOT目录中找到style.css文件:
[recall STATIC_ROOT = '/home/<myusername>/distracti.co.uk/static/']
~/distracti.co.uk $ ls static/
static/:
admin images style.css
所以文件在那里等待发送到我的STATIC_ROOT目录中的浏览器!!
然而,尽量尝试,这只是不起作用...... :( 我的css和png文件在浏览器中遇到404错误:
GET http://www.distracti.co.uk/static/style.css 404 (NOT FOUND)
GET http://www.distracti.co.uk/static/images/test.png 404 (NOT FOUND)
任何帮助都会非常感激。我从没想过这么简单的事情会如此困难,我真的很感激任何建议。令人沮丧的是,不了解Django找到这些文件的过程,任何人都可以提供帮助吗?
由于
加雷
答案 0 :(得分:0)
您可以使用findstatic
检查配置https://docs.djangoproject.com/en/1.5/ref/contrib/staticfiles/#django-admin-findstatic
如果findstatic找到您的文件,您还应尝试重新启动服务器。