栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Django无法找到我的媒体文件(在开发服务器上)

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Django无法找到我的媒体文件(在开发服务器上)

您正在混合和匹配Django 1.3之前和之后的静态文件处理。最初,所有静态文件都由提供

MEDIA_URL
,但Django
1.3引入了staticfiles
contrib软件包以及相关的
STATIC_ROOT
STATIC_URL
设置。
django.views.static.serve
利用您尚未设置的新staticfiles应用。

假设您正在运行Django 1.3,首先,您需要在其中添加“ staticfiles”

INSTALLED_APPS
。然后,您需要定义
STATIC_ROOT
STATIC_URL
。标准位置是名为“静态”的项目根目录。

您还需要添加staticfiles模板上下文处理器:

TEMPLATE_CONTEXT_PROCESSORS = (    ...    'django.core.context_processors.static',)

这将使

STATIC_URL
变量在模板中可用,因此您可以使用诸如
{{ STATIC_URL }}css/style.css

您所有的静态资源也将需要进入一个名为“
static”的应用程序级目录。实际的项目根目录级别的“静态”目录从不直接使用。这只是

collectstatic
管理命令转储所有静态资源以供生产使用的地方。

如果您需要整个项目范围内的静态资源(不与任何一个特定的应用程序绑定),则需要一个完全独立的目录(即与

MEDIA_ROOT
或不同
STATIC_ROOT
)。我倾向于使用一个名为“资产”的资产。然后,您需要告诉Django在此处查找静态资源以及该
STATICFILES_DIRS
设置:

STATICFILES_DIRS = (    os.path.join(os.path.dirname(__file__), 'assets'), # or whatever you named it)

MEDIA_ROOT
/
MEDIA_URL
现在仅用于用户上传(例如,通过
FileField
s和
ImageField
s创建的任何文件,因此您仍然需要它,但永远不会在其中手动存储任何内容。

量产后,您的网络服务器将需要同时在和

MEDIA_ROOT
STATIC_ROOT
处提供服务。您还需要运行:
MEDIA_URL``STATIC_URL

$ python manage.py collectstatic

为了使Django将所有静态文件编译到所指定的目录中

STATIC_ROOT



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/648450.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号