gpt4 book ai didi

Dreamhost 上的 Django 1.5 - 未找到静态文件,出现 404 错误

转载 作者:行者123 更新时间:2023-12-03 03:49:17 24 4
gpt4 key购买 nike

很抱歉,我知道类似的问题已经被问过很多次了...我真的很抱歉再次询问,但我在这方面遇到了很多麻烦(我花了很多时间尝试一切,但是我只是觉得我没有取得任何进展)我想我会寻求一些具体的帮助。

我正在尝试在 Dreamhost 上设置 Django 应用程序。我通过 virtualenv 使用 Django 1.5,它工作得很好。然而,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 找到这些文件的过程真是令人沮丧,有人能帮忙吗?

谢谢

加雷斯

最佳答案

您可以使用findstatic来检查您的配置 https://docs.djangoproject.com/en/1.5/ref/contrib/staticfiles/#django-admin-findstatic

如果 findstatic 找到您的文件,您还应该尝试重新启动服务器。

关于Dreamhost 上的 Django 1.5 - 未找到静态文件,出现 404 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18360419/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com