2

こことドキュメントのほとんどすべての例を見てきましたが、まったく機能していません

だから私のsettings.pyファイルには

STATIC_ROOT = '/mattr/static/'
STATIC_URL = '/mattr/public/'

STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',)

TEMPLATE_CONTEXT_PROCESSORS = ('django.core.context_processors.static',)

TEMPLATE_DIRS = ('mattr/public', )

基本的に、静的ファイルを処理するために必要なすべて。

urls.pyには、ページの通常のパターン (テンプレートは正常に読み込まれます) があり、この追加の行があります。

urlpatterns += staticfiles_urlpatterns()

私が持っているviews.pyには(これはホームページ用です):

def home(request):
    t = get_template('index.html');
    html = t.render(RequestContext(request))
    return HttpResponse(html)

テンプレートファイルindex.htmlには次の行があります

<img src="{{ STATIC_URL }}media/images/Mattr1.png">

それでも、画像を表示することはありません。http://127.0.0.1:8000/mattr/public/media/images/Mattr1.pngの画像ファイルに直接アクセスしようとしても、Page Not Found エラーが発生します。パスがどこから始まるのか少し混乱しましたが、テンプレートページが読み込まれたため、パスが正しいと思いました

4

3 に答える 3

1

静的ファイルについて話しているときは、次のようにします。

STATIC_URL = '/static/' #or whatever you want

STATICFILES_DIRS = (
    '/path/to/static/root/directory/',
)

coma または django の管理者には css がないことを忘れないでください。これで完了です。何も変更する必要はありません。urls.py

メディアについて話している場合は、次のようにします。

MEDIA_ROOT = '/media/' # or whatever you want

MEDIA_URL = '/path/to/media/root/directory'

これを下部の に配置しmyproject.urlsます。

import settings
urlpatterns += patterns('', url(r'^media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT,}),)

終わり!

于 2012-11-16T04:04:55.933 に答える
0

あなたのsettings.pyでこれを試してください:

import os
DIRNAME = os.path.dirname(__file__)

STATIC_ROOT = os.path.join(DIRNAME, 'static')

STATIC_URL = '/static/'

テンプレート内:

{{STATIC_URL}}css/etc...

また、代わりにこれを上書きしてTEMPLATE_CONTEXT_PROCESSORSいます:settings.pyで

import django.conf.global_settings as DEFAULT_SETTINGS

TEMPLATE_CONTEXT_PROCESSORS = DEFAULT_SETTINGS.TEMPLATE_CONTEXT_PROCESSORS + (
"whatever_your_adding",
)
于 2012-11-15T22:41:46.810 に答える
0

パスの前に「/」を使用すると、ルートディレクトリから参照していることを示しますが、そうではないと思います。これをやってみてください。

STATIC_ROOT = 'mattr/static/'
于 2012-11-15T23:44:57.523 に答える