2013-10-11 10 views
22

私はHeroku上にDjangoアプリを持っています。私はスタティックファイルにいくつか問題があります(彼らは1つのHeroku environmentにロードしていますが、別のものではありません)。したがって、私はデバッグコマンドを試しました。hereを推奨しました。ここでHeroku&Django: "OSError:そのようなファイルやディレクトリはありません: '/ app/{myappname}/static'"

$ heroku run python manage.py collectstatic --noinput 
Running `python manage.py collectstatic --noinput` attached to terminal... up, run.8771 
OSError: [Errno 2] No such file or directory: '/app/{myappname}/static' 

は、Herokuのは推奨しています同じことである私のsettings.py、次のとおりです。

import os 
import os.path 

BASE_DIR = os.path.dirname(os.path.abspath(__file__)) 
STATIC_ROOT = 'staticfiles' 
STATIC_URL = '/static/' 

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static'), 
) 

私は実際に私のルートレベルの「静的」ディレクトリを持っているかどうかのエラーを取得しますGit repo(両方の方法でテスト済み)

アイデア?

+0

あなたはINSTALLED_APPSを投稿できますか? – fasouto

答えて

41

これはsettings.pyの隣にある 'static'という名前のフォルダを探しています。つまり、git repoのルートではなく、プロジェクトフォルダです。

git root/ 
git root/{app name} 
git root/{app name}/settings.py 
git root/{app name}/static/   <- this is what you're missing 

それが空の場合は、そこに空のファイルを配置する必要がありますので、空のフォルダは、gitので追跡されていないことに注意してください。または、必要になるまでSTATICFILES_DIRSの設定を削除します。

私は変更:

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static'), 
) 

をする:私はちょうどこれと同じ問題を抱えていたし、ここに私のために働いたソリューションだ

+0

私はherokuサイトで同じ問題を抱えていましたが、欠けているのは空の.gitignoreファイルだけでした! –

+1

最後に "STATICFILES_DIRS設定が必要になるまで削除する"という最後の項目を除いて、ほとんどすべてが私のために働いたので、すべてがうまく機能しました。 Herokuは、その行がなくなるまで「静的なものを集める」ことはありません。 – CoderOfTheNight

9

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'myappfolder/static'), 
) 
+2

私のパスはディレクトリを移動する必要がありましたが、これは私にとってもうまくいった: 'os.path.join(BASE_DIR、 '../ myappfolder/static')' – Joseph

+0

とても良い!お二人のおかげです。 – glaucon

+0

@Josephありがとう ../myappfolder/staticが私のために働いた。 – pavanw3b

1

上記joerickの答え@事です。あなたは(gitのルート/ {あなたのアプリ} /静的)別の「静的」フォルダを配置したくない場合は、あなたが最初にジャンゴ管理者makeprojectによって供給されBASE_DIR変数を変更することを検討可能性があります

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

これはちょうど(git root /)ディレクトリです

関連する問題