Django Localhost没有加载静态文件

时间:2017-10-03 14:29:08

标签: python django

我有一个正在运行的应用程序并已在本地(通过git)下载了相关的django文件,并尝试在本地运行该应用程序。但是,静态文件未加载。

在访问应用的主页(http://localhost:8000/home/)时收到以下控制台错误:

GET http://localhost:8000/static/imported_JS/jquery/jquery.min.js net::ERR_ABORTED

或此错误:

http://localhost:8000/static/globe.png 404 (NOT FOUND)

在我的settings.py文件中,我可以确认:

BASE_DIR = os.path.abspath(os.path.join(os.path.dirname(os.path.dirname(__file__)),'..'))  # i.e. location of settings.py file
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static_cdn/')

我还可以确认确实存在static_cdn/文件目录,它确实包含相关的静态文件。

应用的实时devprod版本工作(托管在不同的Web服务器上),但无论出于何种原因,在本地运行应用时,都不会提供静态文件。

有关如何拥有localhost服务器静态文件的任何想法?关于此类问题的大多数答案与设置STATIC_URLSTATIC_ROOT时的错误有关,但这些错误似乎是正确的(至少在devprod )。

如果您需要更多信息,请与我们联系。谢谢。

更新

好吧,我在这个问题上挣扎了一个小时左右,在发布这个问题后5分钟,我想我找到了解决方案。

从此改变:

STATICFILES_DIRS = []

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static_cdn/')

对此产生了不同:

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static_cdn/')  # add STATIC_ROOT to DIRS
]

STATIC_URL = '/static/'
# STATIC_ROOT = os.path.join(BASE_DIR, 'static_cdn/')

我不确定为什么会有效,但如果您解释原因,我会将您的回答表示为答案。感谢。

0 个答案:

没有答案