2014-02-16 65 views
0

我想將我的Django應用程序上傳到Bluehost,並且由於某種原因,沒有一個CSS在管理頁面上工作,我一直在網上瀏覽幾個小時尋找解決方案,但我還沒有找到專門爲Bluehost或Django 1.6量身打造的產品。這個問題是最接近我需要的東西,但它仍然無法正常工作。 Django's admin is missing css, images, etc - unable to properly set up static files on shared host我所有的靜態文件現在都在/ public_html/static /中,它爲那個人工作,所以我很想知道我做錯了什麼。Django 1.6管理頁面CSS不能與Bluehost一起工作

下面是相關代碼

# Static files (CSS, JavaScript, Images) 
# https://docs.djangoproject.com/en/1.6/howto/static-files/ 
MEDIA_ROOT = '/home/mySite/Django/WebApp/quiz' 
MEDIA_URL = '/media/' 
STATIC_ROOT = '/home/mySite/public_html/QuizApp/static/' 
STATIC_URL = '/static/' 
ADMIN_MEDIA_PREFIX = '/static/admin/' 

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

我編輯settings.py後,我沒跑collectstatic。另外我覺得這也可能很重要。

TEMPLATE_DIRS = [os.path.join(BASE_DIR, 'tempaltes')] 

和.htaccess文件,因爲BlueHost的不允許訪問httpd.conf文件

AddHandler fcgid-script .fcgi 
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} !=/favicon.ico 
RewriteCond %{REQUEST_URI} !^/static/ 
RewriteRule ^(.*)$ QuizApp.fcgi/$1 [QSA,L] 

如果你都需要別的讓我知道。這是我第一次使用web開發,python和CSS的經驗,所以請儘可能詳細,我從字面上什麼都不知道。

回答

2

如果您直接從文件中複製和粘貼代碼,那麼您可能會嘗試的第一件事是更正template_dirs作業中的拼寫錯誤。

您有:

TEMPLATE_DIRS = [os.path.join(BASE_DIR, 'tempaltes')] 

它應該是:

TEMPLATE_DIRS = [os.path.join(BASE_DIR, 'templates')] 

此外,您還可以檢查您的STATIC_ROOT是否設置正確。

它應該是:

STATIC_ROOT = '/home/<user>/public_html/subdirectory/static/' 

你的子目錄看起來不錯(QuizApp),但它看起來你有你的項目網站「MYSITE」,其中用戶名應的名稱。隨着你想BlueHost的你static_root是的/ home /用戶名/ ...

修訂答:

你STATIC_ROOT是全路徑的目錄在您的靜態文件將被移動到並存儲(當你運行collectstatic)。您的STATIC_URL是您的應用在獲取靜態文件時將引用的網址。通過藍主機,任何位於'/ public_html /'後面的文件路徑都可以被網絡訪問。這意味着'/ public_html /'之後的任何文件夾都可以/必須顯示在指向該文件夾中任何文件的url(在您的域名之後)中。

在這種情況下,您的STATIC_ROOT是'/ home/mySite/public_html/QuizApp/static /' ,但您的STATIC_URL是'/ static /',所以看起來您的網址指向了錯誤的地方。

因此,如果您的域名是「coolsite.com」,那麼您的靜態文件將存儲在「www.coolsite.com/QuizApp/static/」中,但是您指向的網址只是'www.coolsite.com/static/'。因此,請嘗試將您的STATIC_URL更改爲「/ QuizApp/static /」,然後再次運行「python manage.py collectstatic」。

+0

我嘗試了所有這一切,它仍然無法正常工作:/我甚至直接訪問了管理員的css文件,並將所有文件路徑硬編碼到public_html中的靜態文件夾,你認爲如果我切換到Django 1.4? – pianoisland

+0

不,django 1.6更可取,而我最近剛剛在一個bluehost帳戶中使用它,所以我不會建議扔在毛巾上。 :) - 我會用另外的建議編輯我的答案。 –

+0

非常感謝您的支持!!!!! – pianoisland