2011-08-22 58 views
2

我有这个媒体根:Django上传文件url问题

MEDIA_ROOT = '/var/www/hosted/myapp/static/'
和这个媒体网址
MEDIA_URL = '/static/res/'
我试图上传一个文件使用callable:
def get_uploadto(instance, filename): 
    ''' Dummy callable to silence the upload_to field of FileFields ''' 
    return os.path.join('uploads', filename)
,它将图片上传到/ var/www /托管在磁盘上/ myapp/static/uploads /就像计划的那样,但是在管理员中,它创建了一个链接,指向静态/ res /上传,这不存在。有谁知道为什么?当然,我可以简单地将上传目录移动到静态数据库中,但我正在寻找更优雅的解决方案。

+0

是否希望远程用户可以访问这些文件?然后,您需要将网址映射到路径。 – agf

回答

3

这是预期的行为。该文件是在

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)}), 
+0

谢谢你,帮助很大:) –

+0

不客气,欢迎Django的世界:-) –