2013-08-01 15 views
5

私は少し助けが必要ですが、私は結果のない解決策を探しています。Django 1.5静的ファイルのGOT 404

これは私の設定です: settings.py:

STATIC_ROOT = '' 

# URL prefix for static files. 
# Example: "http://media.lawrence.com/static/" 

STATIC_URL = '/static/' 

PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__)) 

STATICFILES_DIRS = (
    PROJECT_ROOT + '/static/' 
) 

インストール済みのアプリケーション:DEBUG = TRUEで実行

INSTALLED_APPS = [ 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.sites', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
    'django.contrib.admin', . . . 

:私は「特別な言及として

August 01, 2013 - 16:59:44 
Django version 1.5.1, using settings 'settings' 
Development server is running at http://127.0.0.1:8000/ 
Quit the server with CONTROL-C. 
[01/Aug/2013 16:59:50] "GET/HTTP/1.1" 200 6161 
[01/Aug/2013 16:59:50] "GET /static/media/css/jquery-ui/ui-lightness/jquery-ui- 1.10.3.custom.min.css HTTP/1.1" 404 5904 
[01/Aug/2013 16:59:50] "GET /static/media/css/bootstrap/bootstrap.css HTTP/1.1" 404 5904 
[01/Aug/2013 16:59:50] "GET /static/media/css/bootstrap/bootstrap-responsive.min.css  HTTP/1.1" 404 5904 
[01/Aug/2013 16:59:50] "GET /static/media/css/styles.css HTTP/1.1" 404 5904 
[01/Aug/2013 16:59:50] "GET /static/media/js/jquery/jquery-1.9.1.min.js HTTP/1.1" 404 5904 
[01/Aug/2013 16:59:50] "GET /static/media/js/bootstrap/bootstrap.min.js HTTP/1.1" 404 5904 
[01/Aug/2013 16:59:50] "GET /static/media/js/jquery-ui/jquery-ui-1.10.3.custom.min.js HTTP/1.1" 404 5904 
[01/Aug/2013 16:59:50] "GET /static/media/js/messages.js HTTP/1.1" 404 5904 
[01/Aug/2013 16:59:50] "GET /static/media/js/validate/jquery.validate.min.js HTTP/1.1" 404 5904 
[01/Aug/2013 16:59:50] "GET /static/media/images/FERREMOLQUES2.png HTTP/1.1" 404 5904 
[01/Aug/2013 16:59:50] "GET /static/media/js/dynamic-style.js HTTP/1.1" 404 5904 

Django 1.5.1とPython 2.7.5を実行中です。VIRTUALENV。この構成は任意の助けが

感謝を認めるだろう問題

を引き起こしているかどうかは知りません。

編集:私はVIRTUALENVをオフにしてDjangoの適切なバージョンとプロジェクトの依存関係をインストールすると、問題なくプロジェクトがうまく動作します。 。 。統計は必要な通りに表示されます

+0

あなたは正しい、あなたの静的フォルダで物事を置くことを覚えていたのですか?それは、それらのすべてが各アプリの代わりに単一の静的フォルダにあることを期待しているようです。また、Django 1.5では、ドキュメントは '{%static %}' –

+0

を使用することをお勧めします。もちろん、この問題を投稿する前に注意します。 – Archie

答えて

8

あなたのSTATICFILE_DIRSは正しいですか?あなたの設定が現時点のものであれば、staticフォルダはsettings.pyと同じレベルになっているはずです。

PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__)) # it means settings.py is in PROJECT_ROOT? 
STATICFILES_DIRS = (
    PROJECT_ROOT + '/static/', # <= don't forget a comma here 
) 

私の通常のsettings.pyは少し異なります。

ROOT_PATH = path.join(path.dirname(__file__), '..') # up one level from settings.py 
STATICFILES_DIRS = (
    path.abspath(path.join(ROOT_PATH, 'static')), # static is on root level 
) 

それとは別に、あなたはコンテキストプロセッサとしてdjango.core.context_processors.staticが必要になります。

TEMPLATE_CONTEXT_PROCESSORS = (
    # other context processors.... 
    'django.core.context_processors.static', 
) 

そしてurls.pyでURLPATTERN有効:

from django.contrib.staticfiles.urls import staticfiles_urlpatterns 
urlpatterns += staticfiles_urlpatterns() 

希望すると助かります!すべてのソリューションを探しての時間と時間のために

+0

こんにちは、高速応答をありがとう。実際には、settings.pyは静的と同じレベルにあります。プロジェクトのルートフォルダには、アプリケーションフォルダ、静的フォルダ、設定、およびmanage.pyがあります。カンマを追加しても問題は解決しません。 。 。 – Archie

+0

さて、もっと手がかりをつけて私の編集した答えをチェックしてください。 –

+0

もう一度、コード上で何も変更せずに問題を解決できる唯一の事は、VIRTUALENVを使用していなかったのですが、なぜですか?なぜ静的ファイルがVIRTUALENVでうまく動作しないのかわかりません。 。 。そして本当にvirtualenvが必要です。私は自分のマシンにすべての依存関係をインストールしたくないので、python 3と2でdjango 1.4と1.5と同じことを証明したいです。 助けを借りてありがとう – Archie

3

は、最終的に私はこの問題はバグであることが判明:

https://bugzilla.redhat.com/show_bug.cgi?id=962223

私はこのバグは、ジャンゴやPython、私のDjangoのバージョンであるかどうかわからないんだけど1.5.1、Pythonは2.7.5です。以前のdjangoとpythonのバージョンで、バグが存在するかどうかを確認する必要があります。

私はそれをTrueに変更するとDEBUG=Falseになりました。問題はなくなりました。開発中ですが、私は心配していませんが、プロジェクトが完成するまでパッチを待つことになります。

もう一度おねがいします。

ファイルの場所 - - django.contrib.staticfiles.management.commands

+0

おかげで、これは – Yefei

+0

こんにちは私の作品、おかげで、この私にも役立ちますが、本番サーバーにはfalseを使用する必要があります。私はdjango 1.10.5とpython 2.7.12にいますが、まだこの問題に遭遇しています。 – zhihong

+0

こんにちは、後でこれはdjangoのdocで話され、DEBUG = TrueとFalseのときは静的ファイルの設定が異なっていると述べました。 doc here.https://docs.djangoproject.com/en/1.10/howto/static-files/を確認してください。 – zhihong

1

この問題は、NON DEBUGモード静的ファイルハンドラ内で起こっていることはsettings.STATIC_ROOTパスを処理しないコード行は、以下のとおりWSGIです。runserver

これを修正するには、以下のコードに示すようにもう1つのチェックを追加しても問題ありません。

def get_handler(self, *args, **options): 
     """ 
     Returns the static files serving handler wrapping the default handler, 
     if static files should be served. Otherwise just returns the default 
     handler. 

     """ 
     handler = super(Command, self).get_handler(*args, **options) 
     use_static_handler = options.get('use_static_handler', True) 
     insecure_serving = options.get('insecure_serving', False) 
     if use_static_handler and (settings.DEBUG or insecure_serving): 
      return StaticFilesHandler(handler) 
     elif use_static_handler: 
      return StaticFilesHandler(handler) 
     return handler 

おかげで、
のGaurav

関連する問題