【问题标题】:Django static files not loading with default setupDjango 静态文件未使用默认设置加载
【发布时间】:2011-10-05 18:38:06
【问题描述】:

所以我安装了 Bitnami Django 堆栈,并启用了管理模块,并按照教程为“投票”创建了一个管理菜单。

但是,当我转到 /admin/ 时,一切都是白色的明文。所有的css和图片都是404错误。

我所做的只是:

在 settings.py installed_apps 中启用:

'django.contrib.admin',

在 urls.py 中未注释:

from django.contrib import admin
admin.autodiscover()
url(r'^admin/', include(admin.site.urls)),

未注释。

在 settings.py 中,我尝试使用默认设置,也尝试了这个:

MEDIA_ROOT = ''
MEDIA_URL = '/media/'
STATIC_ROOT = ''
STATIC_URL = '/static/'
ADMIN_MEDIA_PREFIX = STATIC_URL + 'admin/'
import os
SITE_ROOT = os.path.dirname(os.path.realpath(__file__))
STATICFILES_DIRS = (
  os.path.join(SITE_ROOT, 'static/'),
)

似乎没有任何效果,它拒绝在 /admin/media/css/ 等中找到静态文件。

我确保我的 windows PATH 有 django 的 /bin。我什至尝试包含/contrib,没有任何帮助。

我已将 Django 安装到: C:\DjangoStack\apps\django

我已将我的项目安装到: C:\Users\dexter\BitNami DjangoStack 项目\Alpha 然后我输入:localhost/Alpha/admin 进入 admin。

【问题讨论】:

  • 你在 static/admin 中有 django admin css 和图像堆栈的副本吗?在本地主机上应该没关系,但可以尝试...
  • 不,我不知道静态/管理员在哪里。
  • 静态管理员是您在项目中创建的文件夹,与您的媒体文件夹相同。你应该有project/media、project/static 和project/static/admin。进入您的 Django 安装并复制 admin 媒体文件夹,它应该类似于 'admin/css, admin/js, and admin/images. And copy that into your static/admin` 文件夹。但就像我说的那样,这在本地主机上无关紧要。您也可以检查一下是否将您的staticfiles_dirs 更改为()。我想我应该把这个作为答案......
  • 一切仍然是白色和 404。调试说它寻找例如 localhost/static/admin/css/ie.css 404。我还尝试将我的浏览器指向 localhost/Alpha/static/admin /css/ie.css 不起作用。我还尝试了 localhost/Alpha/Gamma/static/admin/css/ie.css(Gamma 是我的小投票应用程序),也不起作用。
  • 我得到的错误:使用 Alpha.urls 中定义的 URLconf,Django 按以下顺序尝试了这些 URL 模式:^admin/ 当前 URL,static/admin/css/ie.css,没有'不匹配任何这些。

标签: python django django-templates


【解决方案1】:

我几乎错过了这个问题的答案,直到我重新阅读了您的问题并最终在最后一行中找到了一点:“我输入:localhost/Alpha/admin to go to admin”。这意味着你所有的 URL 设置都是错误的。

目前,您有:

MEDIA_URL = '/media/'
STATIC_URL = '/static/'
ADMIN_MEDIA_PREFIX = STATIC_URL + 'admin/'

然而,这些应该是:

MEDIA_URL = '/Alpha/media/'
STATIC_URL = '/Alpha/static/'
ADMIN_MEDIA_PREFIX = STATIC_URL + 'admin/'

此外,STATICFILES_DIRS 中不需要“static/”。所以删除该设置。

【讨论】:

  • 啊,太好了,你想通了。我不知道为什么 django 安装或 bitnami 安装尚未正确设置。太奇怪了。
【解决方案2】:

我来自 BitNami 团队,我刚刚看到了这个问题。我不确定您是否使用的是旧版本,但至少在 BitNami DjangoStack 的较新版本中,您只需要确保 ADMIN_MEDIA_PREFIX 指向 /static/admin/ 如果您遵循 https://docs.djangoproject.com/en/1.3/intro/tutorial02/ 中的说明。您不需要复制项目目录中的静态文件,因为 django 会自动使用 django/contrib 目录中的文件。

但是,目前我们将 ADMIN_MEDIA_PREFIX 设置为 /static/admin/media,因为当应用程序由 Apache 而不是 django 服务器提供服务时,行为会有所不同。我们意识到这对于刚开始使用 django 的用户来说可能有点令人困惑,我们正在考虑这一点,以保持新项目的默认配置,但也允许 Apache 为演示项目提供服务。

【讨论】:

  • 我使用的是 bitnami-djangostack-1.3-0-windows-installer.exe 。但我不知道,我可能因为不得不卸载 python 2.7,然后重新安装 bitnami 而搞砸了,也许出了点问题——说明不清楚在安装 bitnami 之前应该删除 Python 2.7 ,否则会产生冲突。所以也许我搞砸了。 --- 是的,现在一切都让我感到困惑,我发现安装 PHP + apache 的过程要简单得多(因为也许我已经习惯了),而且我是一位经验丰富的 .NET / PHP / C++ / C# / 程序集开发人员.谢谢澄清。
  • 很抱歉您发现已安装的 Python 版本存在问题。我们会修复它,以免干扰。
  • 谢谢,请问有没有解决办法? stackoverflow.com/questions/7851429/…
猜你喜欢
  • 2020-07-18
  • 2019-08-31
  • 2014-11-12
  • 2021-04-03
  • 2012-01-21
  • 2016-11-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多