2011-07-21 10 views
3

私が作業しているWebサイト用の新しい開発サーバーを開始したばかりで、CSS用の静的ファイルを提供するDjango開発サーバー他のもの。管理サイトのCSSが正常に読み込まれます。私はvirtualenvサンドボックスでそれを実行しています。開発サーバーを使用しているときにDjangoは静的ファイルを提供しません

settings.pyでは、MEDIA_ROOTとMEDIA_URLを使いこなしました。

これまでのところMEDIA_ROOTでは試してみました。

MEDIA_ROOT = '/home/wluw/wluw/wluw/media' 

MEDIA_ROOT = os.path.join(os.path.dirname(__file__), 'media') 

私は私のMEDIA_URLこの

MEDIA_URL = '/media/' 

と静的ファイルのルックスのためのurls.pyセクションのように見えます

ADMIN_MEDIA_PREFIX = '/admin_media/' 

に私のADMIN_MEDIA_PREFIXを変更このような。

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

これは、ページにアクセスしようとすると、devサーバーからの出力です。ここで

[21/Jul/2011 21:19:25] "GET /media/css/style.css HTTP/1.1" 302 0 
[21/Jul/2011 21:19:25] "GET /media/css/style.css/ HTTP/1.1" 404 2561 



from django.conf.urls.defaults import patterns, include, handler500, handler404 
from django.conf import settings 
from django.contrib import admin 
import d51_django_admin_piston 

handler500 = 'radio.frontend.views.server_error' 

admin.autodiscover() 
d51_django_admin_piston.autodiscover(admin.site) 

urlpatterns = patterns(
'', 
(r'^logs/', include('radio.logs.urls')), 
(r'^events/', include('radio.events.urls')), 
(r'^station/', include('radio.station.urls')), 
(r'^staff/', include('radio.staff.urls')), 
(r'^admin/', include(admin.site.urls)), 
(r'^accounts/login/$', 'django.contrib.auth.views.login'), 
(r'^', include('radio.frontend.urls')), 
) 

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

は、ここに私のradio.frontend.urls

from django.conf.urls.defaults import * 


urlpatterns = patterns('radio.frontend.views', 
    url(r'^$', 'home', name='home'), 
) 

である私のsettings.py settings.py

すべてが本番サーバ持つ/メディア上の罰金働いていたのですか? CSSなどのためのURLです。

また、データベース内のコンテンツは表示されていません。サイトの各ページは、base.htmlとviewname.htmlで作成されます。 base.html部分のみが表示されます。私はこれが他の質問の話題だと確信しています。

私は同じ問題を抱えている人たちと一緒に大量の他の投稿を見てきましたが、解決策を提示していませんでした。私は完全に困惑しています。

ご協力いただければ幸いです。ありがとう

+0

は '/' 'あなたのMEDIA_ROOT'の終わりをTryputting私のために動作します。私は新しいプロジェクトを立ち上げなければならなかったので、しばらくしてきました。 –

+0

私はそれを試み、それは動作しませんでした。 – thebeagle

+0

'{'document_root':settings.MEDIA_ROOT、 'show_indexes':True}'を追加して、ディレクトリに移動できるかどうかを確認してください。 404エラーが出ますか? –

答えて

3

あなたのコメントにあなたが言うので、あなたが代わりに「/メディア/」の「/静的/」を介して、あなたの静的ファイルにアクセスしようとしている。

"GET /static/css/style.css HTTP/1.1" 302 0 [21/Jul/2011 21:13:31] "GET /static/css/style.css/ HTTP/1.1" 404 

あなたがそのようにアクセスのいずれか:

"GET /media/css/style.css HTTP/1.1" 302 0 [21/Jul/2011 21:13:31] "GET /media/css/style.css/ HTTP/1.1" 404 

あなたのテンプレートにURLを設定します。

または、セットアップあなたがこの方法をルーティング:

if settings.DEBUG: 
urlpatterns += patterns('', 
    (r'^static/(?P<path>.*)$', 'django.views.static.serve',   
    # {'document_root': settings.MEDIA_ROOT}), 
    {'document_root': settings.MEDIA_ROOT, 'show_indexes': True}) 
) 

あなたは通常のアップロード/ダウンロードコンテンツ用MEDIA_ROOTを使用するように私は、セットアップsettings.STATIC_FILE秒いずれかを選択し、希望ます。

+0

静的な部分は、私が別の設定で馬鹿にしていたときにねじを締めていました。今度は GET /media/css/style.css HTTP/1.1 "302 0 [21/Jul/2011 21:13:31]" GET /media/css/style.css/ HTTP/1.1 "404 – thebeagle

1

問題はあなたのurls.pyにある必要があります.AppendSlashMiddleware - スラッシュで終わるURLへのリダイレクトを引き起こしている - URLがまったくマッチしない場合、一致する必要があることが示されます。

愚かな質問ですが、DEBUGは本当ですか?あなたはurls.pyの残りの部分を表示できますか?あなたはそれが別のURLに含まれているのではなく、メインのurls.pyだと確信していますか?

編集 OK、それはあなたのradio.frontend.urlsファイルを見ることなく伝えるのは難しいのですが、何が起こっていることは、すべてのURLがそのに対して一致しているということであるように見えます - あなたはそれを含めるようにr'^'を使用しているため、すべてのものと一致する、でaomethingそのファイルもあまりにも一般的です。最初のurlパターンを分割し、の後にインクルードを置くことができます。

+0

と表示されました。メインポストにurls.confを追加しました。 – thebeagle

+0

DEBUGがtrueに設定されています。私はsettings.pyへのリンクを投稿します。 – thebeagle

+0

動作しませんでした – thebeagle

3

In Django 1.3 MEDIA_ROOTおよびMEDIA_URLは、ユーザーアップロードの物理的な場所を構成するために使用されます。

STATIC_URL = '/static/' # URL prefix for static files. 

STATICFILES_DIRS:あなたはSTATIC_URLを使用する必要があります静的ファイルの

PROJECT_DIR = os.path.dirname(__file__) 

# Additional locations of static files 
STATICFILES_DIRS = (
    # Put strings here, like "/home/html/static" or "C:/www/django/static". 
    # Always use forward slashes, even on Windows. 
    # Don't forget to use absolute paths, not relative paths. 
    os.path.join(PROJECT_DIR, 'static'), 
) 

はまた、あなたがSTATICFILES_FINDERSが設定されていることを確認してください。

あなたの静的ファイルの場所にアクセスするためにSTATIC_URL変数を使用することができ、あなたのテンプレートで
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder', 
    'django.contrib.staticfiles.finders.AppDirectoriesFinder', 
) 

<link href="{{ STATIC_URL }}css/style.css" rel="stylesheet" type="text/css" /> 

開発env./serverのために十分でなければなりません。 urls.pyに何も設定する必要はありません。あなたは、静的なファイルを管理する方法を説明する公式のDjangoのドキュメントサイトを訪問することができます詳細については

https://docs.djangoproject.com/en/dev/howto/static-files/

+0

が読み込まれます。あなたのテンプレートをすべて調べて、静的なものをメディアに変更する必要はありません。さらに、MEDIA_ROOTで使用する必要のある画像がたくさんあります。 – thebeagle

+0

私はすべての私のコードを通過し、静的にmiediaに変更する必要があると思う – thebeagle

+0

おそらくあなたの静的なURLとメディアのルートは同じにすることができますか? –

1

開発サーバー

  1. についてはDjangoのルート
  2. の静的フォルダがにこれを追加してくださいsettings.py( 'assets'、 'static folderへのパス')のSTATIC_DIRS
  3. リソースを先に作成した静的フォルダ内のそれぞれのフォルダに入れます
  4. 次に、python manage.py collectstaticを実行します。あなたはテンプレートでは
  5. を入れている資産は、リンクの使用{%静的の資産/ path_to_resources_as_added_in_the_static_folder 'のトップ
  6. で{%負荷静的%}を追加してこれは、Djangoのルートで管理者や資産のフォルダを作成します。 %}

これは私が持っているものthatsのが、それは重要だったかではない場合、私は覚えていないこととして

関連する問題