Sta*_*anM 6 python django django-media
媒体目前在我的本地开发机器上.
我的MEDIA_ROOT,MEDIA_URL,ADMIN_MEDIA_PREFIX并指定如下:
MEDIA_ROOT = os.path.join(os.path.dirname(__file__), "media")
MEDIA_URL = '/media/'
SITE_URL = 'http://localhost:80'
ADMIN_MEDIA_PREFIX = '/media/admin/'
Run Code Online (Sandbox Code Playgroud)
没有'admin'文件夹,但这不应该有所作为我不认为.在urls.py文件中我有:
(r'^media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}),
Run Code Online (Sandbox Code Playgroud)
我不知道应该怎样做才能让它发挥作用.[我正在尝试学习django并且正在使用一个非常多毛的现有项目]
你正在混合和匹配Django 1.3之前和之后的静态文件处理.最初所有的静态文件都是从中提供的MEDIA_URL,但是Django 1.3引入了staticfiles contrib包以及相关的STATIC_ROOT和STATIC_URL设置.django.views.static.serve利用您尚未设置的新静态文件应用程序.
假设你正在运行Django 1.3,首先,你需要在你的网站上添加'staticfiles' INSTALLED_APPS.然后,你需要定义STATIC_ROOT和STATIC_URL.标准位置是名为"static"的项目根级别目录.
您还需要添加staticfiles模板上下文处理器:
TEMPLATE_CONTEXT_PROCESSORS = (
...
'django.core.context_processors.static',
)
Run Code Online (Sandbox Code Playgroud)
这将使STATIC_URL您的模板中的变量可用,因此您可以使用类似的参考资源{{ STATIC_URL }}css/style.css
所有静态资源也需要进入名为"static"的app(s)-level目录.永远不会直接使用实际的项目根级别"静态"目录.它只是collectstatic管理命令转储所有静态资源以供生产使用的地方.
如果你想要项目范围的静态资源(不依赖于任何一个特定的应用程序),你需要一个完全独立的目录(即与MEDIA_ROOT or不同 STATIC_ROOT).我倾向于使用一个名为"资产"的人.然后,您需要告诉Django在这里查看静态资源以及STATICFILES_DIRS设置:
STATICFILES_DIRS = (
os.path.join(os.path.dirname(__file__), 'assets'), # or whatever you named it
)
Run Code Online (Sandbox Code Playgroud)
MEDIA_ROOT/ MEDIA_URL现在仅用于用户上传(例如,通过FileFields和ImageFields 创建的任何文件,因此您仍然需要它,但您不会手动存储任何内容.
当你到达生产,你的网络服务器需要同时服务MEDIA_ROOT和STATIC_ROOT在MEDIA_URL和STATIC_URL分别.你还需要运行:
$ python manage.py collectstatic
Run Code Online (Sandbox Code Playgroud)
使Django将所有静态文件编译到指定的目录中STATIC_ROOT.
适用于django 1.8 - 1.11:
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
# ... the rest of your URLconf goes here ...
]
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Run Code Online (Sandbox Code Playgroud)
请注意,Django文档说明了这一点
不适合生产使用
(显然除非你使用if settings.DEBUG:部分)
| 归档时间: |
|
| 查看次数: |
7004 次 |
| 最近记录: |