2010-11-20 84 views
4

我正在爲我的一個Web項目學習Django。 在我的項目中添加css,jquery文件時遇到困難。 該模板非常簡單,不需要使用擴展。只需一個頁面形式。 我所做的宣佈我的媒體文件: 在settings.py文件: 補充道:如何在我的django項目中添加css和jquery文件?

`import os 

def path(*x): 
    return os.path.join(os.path.abspath(os.path.dirname(__file__)), *x) 

` 然後添加:添加了

MEDIA_ROOT = path('media') #media is my folder where all the css,js file are 
MEDIA_URL = '/media/' 
ADMIN_MEDIA_PREFIX = '/media/' 
TEMPLATE_DIRS = (
    path('templates') 

在urls.py文件:

from django.conf import settings 
urlpatterns = patterns('', 
    (r'^media/(?P<path>.*)$', 'django.views.static.serve', { 'document_root' : settings.MEDIA_ROOT }), 

在我與所有這些類型的聲明試圖模板文件:

<script type="text/javascript" src="/media/jquery.min.js"></script> 
    <script type="text/javascript" src="/media/site.js"></script> 
    <link rel="stylesheet" type="text/css" media="screen" href="/media/screen.css" /> 
    <link rel="stylesheet" type="text/css" href="{{ MEDIA_URL }}test.css" /> 
<link rel="stylesheet" type="text/css" media="screen" href="../media/screen.css" /> 

但是當我裝模板文件一樣簡單的HTML有:

<script type="text/javascript" src="../media/jquery.min.js"></script> 
    <script type="text/javascript" src="../media/site.js"></script> 
<link rel="stylesheet" type="text/css" media="screen" href="../media/screen.css" /> 

這worked.But我需要我的Django項目中集成。 希望將獲得導航和解決它:) 感謝

+1

你的'MEDIA_URL'和'ADMIN_MEDIA_PREFIX'完全相同。由於'runserver'會自動爲您提供媒體管理,因此這可能是您遇到的問題的根源。嘗試將'ADMIN_MEDIA_PREFIX'設置爲其他內容,如'/ media/admin /'。 – eternicode 2010-11-20 16:39:20

回答

2

我的目錄結構如下:

|-- test_form 
|-- /settings.py 
|-- /urls.py 
|-- /media 
| '-- test.css 
'-- /templates 
    '-- ... 

而且我在template.html文件添加以下語法:

<link rel="stylesheet" type="text/css" href="{{ MEDIA_URL }}test.css" /> 

我感到困惑問題的所在。

6

正確的語法是在你失敗嘗試的事情的清單:

<link rel="stylesheet" type="text/css" href="{{ MEDIA_URL }}test.css" /> 

如果你定義MEDIA_URL爲「/媒體/」,然後該鏈接將成爲/media/test.css

前提是你有以下目錄結構:

my_project 
    |-- settings.py 
    |-- urls.py 
    |-- media 
     |-- test.css 

我會仔細檢查所有的文件和目錄名,確保你沒有任何錯誤的/多餘的斜線等

此外,我認爲「test.css」應該是「screen.css」,就像它在所有其他示例中一樣...

但基本上,使用絕對url路徑(以斜槓開始以指示它從站點根解析)將會像使用一樣工作一個相對路徑(../),只要你真的有你的文件在正確的地方。 然後你會有什麼工作。

2

我認爲在urls.py,你可能已經錯過了在urlpatternsurl,即:

URL模式=模式( '',網址(R'^媒體/(P? *)$','django.views.static.serve',{'document_root':settings。MEDIA_ROOT}),

相關問題