我有这个媒体根目录:
MEDIA_ROOT = '/var/www/hosted/myapp/static/'以及此媒体网址
MEDIA_URL = '/static/res/'我正在尝试使用可调用文件上传文件:
def get_uploadto(instance, filename): ''' Dummy callable to silence the upload_to field of FileFields ''' return os.path.join('uploads', filename),它按照计划将图片上传到磁盘上的/var/www/hosted/myapp/static/uploads/中,但在管理中它会创建一个指向 static/res/uploads 的链接,而该链接并不存在。有谁知道为什么?当然,我可以简单地在静态资源中移动上传目录,但我正在寻找更优雅的解决方案。
最佳答案
这是预期的行为。文件位于
MEDIA_ROOT + 'uploads' + filename
or
/var/www/hosted/myapp/static/uploads/filename
指向这些文件的 URL 是:
MEDIA_URL + 'uploads' + filename
or
/static/res/uploads/filename
然后,您需要确保您的应用程序或托管环境将 URL 指向磁盘上的位置。在开发环境中,您的 urlpatterns 中将会有类似这样的内容:
(r'^static/res/(?P<path>.*)$', 'django.views.static.serve', {'document_root': os.path.dirname(settings.MEDIA_ROOT)}),
关于python - Django上传文件url问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7147188/