簡體   English   中英

Django:如何使用靜態文件(簡單案例,jQuery)

[英]Django: How to use static files (simple case, jquery)

我正在嘗試在Django網站上使用jQuery。 我需要包括jQuery.js庫。 我已經閱讀了很多有關Django靜態文件的信息,但是我認為沒有人問過這個特定問題。 我只提供三個靜態文件:jquery.js,anothersmallfile.js和styles.css。 關於靜態文件投放的Django文檔說:

“對於小型項目,這沒什么大不了的,因為您可以將靜態文件保存在Web服務器可以找到的位置。 鏈接

我想“只是將它們保存在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文件似乎並不十分困難。 我想念什么嗎?

編輯,然后得到更多反對:我正在從上面鏈接的頁面談論這段內容:

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

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

對於小型項目,這並不是什么大問題,因為您可以將靜態文件保存在Web服務器可以找到的位置。 但是,在較大的項目 (尤其是由多個應用程序組成的項目)中 ,處理每個應用程序提供的多組靜態文件變得很棘手。

這就是django.contrib.staticfiles的用途 :它將來自每個應用程序(以及您指定的任何其他位置)的靜態文件收集到一個易於在生產中使用的位置。

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

因此,如果這就是django.contrib.staticfiles的目的,那么更簡單的解決方案是什么? 我認為這是先前問題的重復。

您需要更仔細地閱讀該文檔。 那警告是為了生產 開發中 ,您確實使用了該靜態服務方法,即將其放在urls.py中。 並且,該文檔還將顯示模板目錄不是放置它們的正確位置:單獨的靜態或媒體目錄是。

評論后編輯我真的不明白您的評論。 您可以通過靜態服務視圖在開發中進行操作,也可以使用生產服務器。 但是您說您沒有生產服務器。 當您獲得一個文件(無論是Apache還是Nginx或其他文件)時,您會將靜態文件放在目錄中,並告訴該服務器從那里提供文件。 簡單的解決方案。 就像您引用的文檔中一樣,staticfiles應用程序適用於在不同應用程序中包含大量文件的情況(它簡化了從開發到生產的過程,而不像您認為的那樣復雜化)。

假設您的應用是www。

  1. setting.py-> STATIC_ROOT ='靜態/'
  2. 使目錄www / static
  3. 制作文件www / static / some.html
  4. 在瀏覽器中localhost:8000 / static / some.html

就這樣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM