python - 仅限 Django 管理静态文件 -> 404

标签 python django django-admin

我有一个在嵌入式服务器上运行良好的 django 项目,但是当我尝试在 Apache/mod_wsgi 上使用它时,找不到管理页面 (/static/admin/css) 的静态文件 (404)。这是我的设置:

MEDIA_ROOT = ''
MEDIA_URL = ''
STATIC_ROOT = '/var/www/wsgi/myproject/static'
STATIC_URL = '/static/'
ADMIN_MEDIA_PREFIX = '/static/admin/'

STATICFILES_DIRS = ()

STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
    )


TEMPLATE_LOADERS = (
    'django.template.loaders.filesystem.Loader',
    'django.template.loaders.app_directories.Loader',
    )

TEMPLATE_CONTEXT_PROCESSORS = (
    "socialauth.context_processors.facebook_api_key",
    'django.core.context_processors.media',
    "django.contrib.auth.context_processors.auth",
    "django.core.context_processors.request",
    "django.core.context_processors.static",
    )

ROOT_URLCONF = 'myproject.urls'

TEMPLATE_DIRS = ('/var/www/wsgi/myproject/templates',)

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.admin',
    'myproject.myapp',
    )

我也试过运行

sudo python ./manage.py collectstatic

但没有运气。

最佳答案

你的 apache 虚拟主机配置是什么样的?您应该为 STATIC_ROOT 路径包含一个 Alias 指令。

沿着这些线的东西:

Alias /static [project-path]/static
Alias /media [project-path]/media
<Directory [project-path]/static>
    Order deny,allow
    Allow from all
</Directory>
<Directory [project-path]/media>
    Order deny,allow
    Allow from all
</Directory>

如您所写,每次要在生产中部署新的静态文件时都需要运行 ./manage collectstatic

关于python - 仅限 Django 管理静态文件 -> 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8746180/

相关文章:

django - 如何在django中将文件路径转换为url

python - 将 ModelMultipleChoiceField 的查询集动态设置为自定义记录集

python - Django - 属性错误 : 'UserProfile' object has no attribute 'urls'

python - 如何在 aws cdk 中添加往返端口?

python - 对正则表达式中的反斜杠感到困惑

python - Urllib.urlopen() 在一台机器上使用 Python 2.6.6 处理 SSLv3 url,但在另一台机器上不能使用 2.6.7/2.7.2

python - Django 模板 : How to display block of HTML based on a boolean field in model

python - Django:TEMPLATE_DIRS 与 INSTALLED_APPS

python - 使用python用值替换文本文件中的单词

django - 访问表单集中的特定表单,无需对索引进行硬编码