2011-08-23 99 views
1

我想在Django網站上使用jQuery。我需要包含jQuery.js庫。我已經閱讀了很多關於Django靜態文件的知識,但我不認爲有人問過這個問題。我只有三個靜態文件可供使用:jquery.js,anothersmallfile.js和styles.css。靜態文件服務Django的文檔說:Django:如何使用靜態文件(簡單的情況下,jQuery)

「對於小項目,這是不是一個大問題,因爲你可以只保留靜態文件放在你的Web服務器可以找到它link

我想。到「只是讓它們在我的web服務器可以找到它們的地方」,因爲其他地方的Django文檔清楚地說明(警告)它們的靜態文件服務方法僅適用於開發環境,我只有一些靜態文件,我只想要最簡單的安全解決方案

不幸的是,我無法得到它的工作。無論我把文件放在哪裏,Django都找不到它們。通過Chrome Web開發人員控制檯進行調試我看到我得到一個404錯誤:

GET http://127.0.0.1:8000/templates/polls/jquery.js 404 (NOT FOUND) 

我是新來運行服務器。我是否A.)需要告訴我的urls.py文件在哪裏可以找到靜態文件?或者問題是B.),我誤解了這個問題 - Django 我的web服務器(用於生產)所以現在我必須使用Django靜態文件解決方案嗎?

似乎不應該很難讓我的模板簡單地識別與它們在同一目錄中的.js文件。我錯過了什麼嗎?

編輯,之前我獲得更多downvotes:我說的是從頁面這段話上面鏈接:

///////////////////////

Django開發人員主要關注Web應用程序的動態部分 - 爲每個請求重新呈現的視圖和模板。但是Web應用程序還有其他部分:呈現完整網頁所需的靜態文件(圖像,CSS,Javascript等)。

對於小型項目,這不是什麼大問題,因爲您可以將靜態文件保存在Web服務器可以找到的某個位置。 但是,在更大型的項目中, - 尤其是那些由多個應用程序組成的 - 處理每個應用程序提供的多組靜態文件開始變得棘手。

這就是django.contrib.staticfiles是:從每個應用程序(和您指定的任何其他地方)到可以很容易地在生產中提供一個位置的收集靜態文件。

/////////////////// 着重強調

所以,如果這就是django.contrib.staticfiles是,有什麼簡單的解決方案?我爭辯說這是以前的問題的重複。

+0

當你說Django是你的網絡服務器時,這是否意味着你正在使用'manage.py runserver'作爲你的生產服務器?如果是這樣,你應該改變這種情況,因爲文檔說它並不意味着以這種方式使用:https://docs.djangoproject.com/en/1.3/intro/tutorial01/#the-development-server – murgatroid99

+0

重複十億個先前的問題。 –

+0

我還沒有生產服務器,我只是想讓它工作。因爲我的靜態文件需求非常簡單,所以我希望我可以使用所提到的任何內容,「因爲您可以將靜態文件保存在您的Web服務器可以找到它的某個位置」,而不是這個複雜的解決方案,我需要在生產中進行更改無論如何。 – Tr3y

回答

1

您需要仔細閱讀該文檔。該警告是針對生產。在開發,你確實使用這種靜態服務方法,即把它放在你的urls.py中。並且,該文檔還將顯示模板目錄不適合放置它們:單獨的靜態目錄或媒體目錄。

在評論後編輯我真的不理解你的評論。您可以通過靜態服務視圖進行開發,也可以使用生產服務器。但是你說你沒有生產服務器。當你得到一個,無論是Apache或Nginx或其他,你把你的靜態文件在一個目錄中,並告訴該服務器從那裏提供文件。那的簡單解決方案。靜態文件應用程序與您引用的文檔完全相同,適用於在不同應用程序中獲取大量文件的情況(並且它簡化了從開發到生產的轉換,而不是像您認爲的那樣使其複雜化)。

+0

我在我的問題中重申了這個事實。澄清:我不知道如何從開發到生產,如果我可以消除任何複雜的轉變,我想。我特別詢問了我讀過的文檔中提到的簡單解決方案。如果你告訴我沒有這樣的解決方案存在,那麼我沒有錯,文檔是。 – Tr3y

+0

好的,很明顯。謝謝。 – Tr3y

1

假設您的應用程序是www。

  1. setting.py - > STATIC_ROOT = '靜態/'
  2. 使DIR WWW /靜態
  3. make文件WWW /靜態/ some.html
  4. 在瀏覽器本地主機:8000 /靜態/一些。 html

就是這樣。

+1

並確保在生產級部署中使用./manage.py collectstatics - 生產服務器不會爲靜態文件調用django dispatcher,因爲直接爲它們提供服務會更快。 – qdot

相關問題