【发布时间】:2015-02-09 22:16:08
【问题描述】:
我有一个 django web 应用程序,它创建调用外部 python 脚本的屏幕截图。
但我很担心,因为每次运行脚本时,我都会创建一个./manage collectstatic 来查看我的应用程序的屏幕截图。很快我就可以同时运行很多 collectstatic 了,这似乎很糟糕。
我怎样才能有一个文件夹来放置屏幕,然后用 django 访问它,而不必将它作为静态文件加载?
我目前的项目如下:
mysite
├── static
│ └── screenshots
| └── *.png
└── crowlers
├── wrapper.py
└── screenshot_robot.py
/opt/scripts/my_script.sh # launch wrapper.py and collectstatic
wrapper.py 在静态/屏幕截图中为我的./manage collectstatic 创建 .png 以获取它们。
根据第一个答案进行编辑:
我终于在我的 django 项目的根目录下创建了一个媒体目录
在 settings.py 中添加以下内容:
MEDIA_ROOT = os.path.join(BASE_DIR, "media")
MEDIA_URL = '/media/'
在 urls.py 中(使其在处于开发状态时与 DEBUG=True 一起工作):
from django.conf import settings
## debug stuff to serve static media
if settings.DEBUG:
urlpatterns += patterns('',
(r'^media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}),
【问题讨论】:
-
我觉得把你的截图放到
MEDIA_ROOT更有意义。 -
我似乎确实需要这个。 MEDIA_ROOT 默认可用,还是我必须编辑 mysite 设置?我应该在我的模板中包含什么,例如
{% load staticfiles %}? -
我找到了docs.djangoproject.com/en/dev/ref/settings/#media-url 我会确认它是否适用于我的情况
-
我认为documentation 中已经涵盖了很多内容;据我所知,聋哑人通常已经足够好了。