2011-04-20 50 views
2

希望對任何有Django體驗的人來說,這將是一件容易的事。 我試圖去掌握一般的這個框架和Python,並下載了filebrowser應用程序。Django filebrowser設置

它允許我創建文件夾確定,但它無法找到它的CSS。

雖然看一個網頁,我在控制檯中執行以下操作:

[20/Apr/2011 14:05:10] "GET /admin/ HTTP/1.1" 200 11282 
[20/Apr/2011 14:05:12] "GET /admin/filebrowser/browse/ HTTP/1.1" 200 14747 
[20/Apr/2011 14:05:12] "GET /media/filebrowser/css/filebrowser.css HTTP/1.1" 404 2324 

第三行顯示爲黃色,因爲Django是無法找到的CSS文件。

大概我只是缺少/在我的settings.py文件中有一個不正確的行,但我不知道我需要更改。

任何人都可以幫忙嗎?

這些都是從我的設置初步認識(我認爲)線:

import os 
SITE_ROOT = os.path.realpath(os.path.dirname(__file__)`) 
MEDIA_ROOT = os.path.join(SITE_ROOT, 'media/uploads/') 
MEDIA_URL = '/media/' 
FILEBROWSER_DIRECTORY = '' 
STATIC_ROOT = os.path.join(SITE_ROOT, 'media/') 
STATIC_URL = '/static/' 
ADMIN_MEDIA_PREFIX = STATIC_URL + "grappelli/" 

任何意見讚賞,並道歉,如果這似乎有點基本的,我只是剛剛開始認真處理這真的。

謝謝。

回答

2

我希望我能正確回答你的問題。

如果您使用的是最新版本的Django 1.3和Django-Grapelli 2.3,那麼您需要最新版本的Django-Filebrowser 3.3。這是舊版本的Filebrowser 3.2及以下版本,不支持靜態文件,這在Django 1.3中默認包含。

你需要做的是svn Filebrowser 3。3從樹枝到你的Python站點包:

svn checkout http://django-filebrowser.googlecode.com/svn/branches/filebrowser_3_3/filebrowser filebrowser 

現在可以運行,以獲得filebrowser到您的靜態文件夾:

python manage.py collectstatic 
+0

謝謝,它現在工作完美! – Dan 2011-04-21 18:03:57

0

installation docs

你收集/符號鏈接/複製的文件?

如果你不使用你staticfiles 既可以使用從 媒體目錄(MEDIA_ROOT 和MEDIA_URL給出)一個符號或 媒體文件複製到filebrowser媒體目錄。 不要忘記相應地更改設置 。

編輯:

它看起來像Django的filebrowser靜態文件存儲:

filebrowser 
|_ locale 
|_ management 
|_ media 
| |_ filebrowser 
|  |_ css 
|  |_ img 
|  |_ js 
|_ templates 
|_ templatetags 

這看起來像其中的媒體文件被存儲在Django的staticfiles應用的較舊的設置media應用程序的目錄(滾動到這些的底部docs

有幾種方法來解決這個問題,無論是通過重命名該目錄,c opying/symlinking,或將目錄添加到STATICFILES_DIR

+0

嗨,我已經試過運行蟒蛇manage.py collectstatic和我得到以下內容:0靜態文件複製到'/ home/dan/testsite/media /'(659未修改)。你有一個我可以看到的settings.py文件的工作示例嗎?謝謝。 – Dan 2011-04-20 21:19:13

+0

對不起,我現在離開我的電腦,但我會看看編輯我的文章,如果沒有人回答。 – DTing 2011-04-20 21:25:12

+0

感謝您的幫助! – Dan 2011-04-21 18:04:34

0

人使用舊版本的工作一個解決辦法是:

from django.contrib.staticfiles.finders import AppDirectoriesFinder 
from django.contrib.staticfiles.storage import AppStaticStorage 


class AppMediaStorage(AppStaticStorage): 
    source_dir = 'media' 

class MediaFinder(AppDirectoriesFinder): 
    storage_class = AppMediaStorage 

,然後加入MediaFinder功能STATICFILES_FINDERS