2012-09-01 70 views
1

正如dotcloud教程指導,這是我postinstall代碼:collectstatic拋出 'OSERROR:[錯誤2]沒有這樣的文件或目錄:' 在dotcloud

#!/bin/sh 
python createdb.py 
python some_project/manage.py syncdb --noinput 
python mkadmin.py 
mkdir -p /home/dotcloud/data/media /home/dotcloud/volatile/static 
ln -sf /home/dotcloud/volatile/static /home/dotcloud/static 
python some_project/manage.py collectstatic --noinput 

... nginx.conf

location /media/ { root /home/dotcloud/data ; } 

...和settings.py

.... 
MEDIA_ROOT = '/home/dotcloud/data/media/' 

MEDIA_URL = '/media/' 

STATIC_ROOT = '/home/dotcloud/volatile/static/' 

STATIC_URL = '/static/' 

.... 

INSTALLED_APPS = (
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.sites', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
    # Uncomment the next line to enable the admin: 
    'django.contrib.admin', 
    # Uncomment the next line to enable admin documentation: 
    # 'django.contrib.admindocs', 
    'some_project', 
) 

postinstall運行時,將引發此錯誤:
OSError: [Errno 2] No such file or directory: '/home/dotcloud/rsync-1346498181296/some_project/static'

我一直在很長一段時間,它的混亂,因爲該文件說/static/已經建立由Python服務和鏈接/home/dotcloud/static

燦有人協助?一切運行良好,直到我設置應用程序的靜態內容。 Python 2.7上的Django版本是1.4.1

回答

2

得到一些睡眠後,我發現我的'靜態'文件夾不在我'settings.py'文件中指定的位置。

此外,dotCloud已更新其文檔以警告'/ static /'不再像前述那樣自動創建,所以我更改了我的postinstall腳本以刪除符號鏈接到'/ static /',並且將nginx.conf文件調整爲在更新的文檔中指示。

參考:
Handlinng static files on dotCloud

+0

嗨,我是一個django + dotcom新手試圖根據最新的文檔設置靜態:http://docs.dotcloud.com/0.9/tutorials/python/django/#handle-static-and-media -資產。我還得到 22:33:43.553537:[www.0] OSError:[Errno 2]沒有這樣的文件或目錄:'/ home/dotcloud/rsync-1360362707945/static' 需要做的任何更改到本教程中給出的配置? – zbyszek26104

0

任何錯誤信息,如「./postinstall失敗,返回代碼」是指沒有與自己的腳本一個問題,而不是平臺。

爲了在dotCloud輕鬆地調試安裝後執行,你可以做到以下幾點:

讓我們假設你的應用程序是「拉麪」,你的服務是「WWW」。而不必一次又一次地推

$ dotcloud -A ramen run www 
> ~/current/postinstall 

它會重新執行安裝後但是從你的會話這段時間,所以你就可以輕鬆地更新安裝後的代碼,然後重新運行它。

找到根本原因後,請在本地修復它並重新安裝應用程序。

相關問題