簡體   English   中英

服務器上的Django靜態文件404,盡管在本地工作

[英]Django static files 404 on server, although working locally

我已經在使用WSGI的apache服務器上部署了django應用程序,但是盡管使用Django的開發服務器在PC上一切正常,但靜態文件卻給我404錯誤。

我的apache2.conf:

WSGIScriptAlias /app /srv/App/App/wsgi.py
WSGIPythonPath /srv/App

<Directory /srv/App/App>
<Files wsgi.py>
Require all granted
</Files>
</Directory>

settings.py

STATIC_URL = '/app/static/'

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

我如何通過模板調用靜態文件的示例

{% load staticfiles %}
...
<link rel="stylesheet" href='{% static "css/main.css" %}'>

與我的本地應用程序版本唯一不同的是,我settings.py上的STATIC_URL不包含“ / app”部分。 根據Chrome的開發人員工具,我的靜態文件的網址為:

http://.../app/static/css/main.css

(使用模板示例的靜態文件),我認為這是正確的,並且無法理解其無法正常工作的原因。

您是否忘了運行此程序?

manage.py collectstatic

請參閱文檔

這是一個經常出現的問題。 你必須:

  • 指定STATIC_ROOT
  • 運行collectstatic
  • STATICFILES_DIRS狀態不需要STATICFILES_DIRS (由Apache處理)。

看一下Django文檔:管理靜態文件

Apache配置中沒有任何Alias指令可告訴Apache靜態文件在哪里以及您希望它們在哪個URL下顯示。 看到:

暫無
暫無

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

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