静态文件未在 pythonanywhere 中加载

问题描述 投票:0回答:2

我将在 pythonanywhere 网站上运行我的项目,我完成了所有工作,但静态文件未加载。 我正在使用 Django 开发一个网站。我的静态文件位于 static_root 目录中,并且静态文件路径也在我的 Django 设置中正确设置。

但是,当我在浏览器中打开网站时,静态文件未加载。例如,当我尝试访问图像时,出现以下错误:

404 未找到:/static/images/my_image.jpg 我检查了以下内容:

static_root目录是可以访问的。 Web 服务器用户具有 static_root 目录的读取权限。 Django 应用程序 URL 模式正确指向静态文件。 我已经清除了网络服务器缓存。 我使用了 Django 调试工具栏,发现静态文件路径没有问题。 谁能帮我解决这个问题吗?

python版本:3.9 Django 版本:4.2.6

谢谢, 埃利亚斯

python django static pythonanywhere
2个回答
0
投票

您可能需要提供静态文件,您可以通过配置 Whitenoise 来实现此目的,Whitenoise 是一个为您的静态文件提供服务的 Python 库。

安装:

pip install whitenoise
然后编辑您的 settings.py 文件并将 WhiteNoise 添加到中间件列表中,位于所有其他中间件之上:

MIDDLEWARE = [
    # ...
    "django.middleware.security.SecurityMiddleware",
    "whitenoise.middleware.WhiteNoiseMiddleware",
    # ...
]

将此

STATICFILES_STORAGE = "whitenoise.storage.CompressedManifestStaticFilesStorage"
添加到您的 settings.py。

请参阅 https://whitenoise.readthedocs.io/en/latest/ 了解更多信息。


0
投票

检查这些设置

# STATICFILES_DIRS = [BASE_DIR / 'static'] # <----- comment this
STATIC_ROOT = BASE_DIR / 'static' # <----- Add this

在pythonanywhere的Web设置中添加

static
的路径

© www.soinside.com 2019 - 2024. All rights reserved.