我有一个类媒体如下
class helloAdmin(admin.ModelAdmin):
class Media:
js = ['choice.js']
admin.site.register(hello,helloAdmin)
staticfiles 应用程序预先添加STATIC_URL
到媒体路径。但我想MEDIA_URL
被放在前面而不是STATIC_URL
并且STATIC_URL
不是空的。如何才能做到这一点?
我有一个类媒体如下
class helloAdmin(admin.ModelAdmin):
class Media:
js = ['choice.js']
admin.site.register(hello,helloAdmin)
staticfiles 应用程序预先添加STATIC_URL
到媒体路径。但我想MEDIA_URL
被放在前面而不是STATIC_URL
并且STATIC_URL
不是空的。如何才能做到这一点?
您可以通过以下设置实现:
import os
CURRENT_PATH = os.path.abspath((os.path.dirname(__file__)))
MEDIA_ROOT = os.path.join(CURRENT_PATH, 'uploads')
MEDIA_URL = '/site_media/'
from django.conf import settings
urlpatterns += patterns('',
url(r'^site_media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT, 'show_indexes': True}),
)
class helloAdmin(admin.ModelAdmin):
class Media:
js = ['/site_media/choice.js']
admin.site.register(hello,helloAdmin)
MEDIA_URL
不建议使用提供静态文件。根据 django 文档,当不为空MEDIA_URL
时,不会引用媒体文件。请参阅文档的这一部分。STATIC_URL
因此,我建议您使用以下设置:
STATIC_ROOT = 'static/'
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(CURRENT_PATH, 'media'),
)
class helloAdmin(admin.ModelAdmin):
class Media:
js = ['choice.js']
admin.site.register(hello,helloAdmin)