6

次のようなクラス Media があります

class helloAdmin(admin.ModelAdmin):
    class Media:
        js = ['choice.js']
admin.site.register(hello,helloAdmin)

staticfiles アプリはSTATIC_URL、メディア パスの前に追加されます。MEDIA_URLしかし、代わりに先頭に追加したいのですが、空ではありませんSTATIC_URLSTATIC_URLこれはどのように行うことができますか?

4

1 に答える 1

7

次の設定でそれを実現できます。

import os
CURRENT_PATH = os.path.abspath((os.path.dirname(__file__)))

MEDIA_ROOT = os.path.join(CURRENT_PATH, 'uploads')

MEDIA_URL = '/site_media/'

urls.py

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

admin.py

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'),
)

admin.py

class helloAdmin(admin.ModelAdmin):
    class Media:
        js = ['choice.js']
admin.site.register(hello,helloAdmin)
于 2013-02-28T08:13:47.477 に答える