【问题标题】:Django static images receive 404 error in windows productionDjango 静态图像在 Windows 生产中收到 404 错误
【发布时间】:2021-10-19 10:11:24
【问题描述】:

我正在尝试在 Windows 服务器上部署 Django 应用程序。我能够加载页面并使用 wgsi。我还可以在使用 runserver 时加载带有图像的页面,只是在通过网络服务器访问时无法加载。我有 DEBUG = False。

我的 settings.py 如下所示:

STATIC_URL =  '/static/'
STATICFILES_DIRS = [
    BASE_DIR / "static",
]
STATIC_ROOT = "/assets/" 

当我收集静态文件时,我的文件被复制到 assets 文件夹中。

但是,在送达时,我会收到: GET http://localhost:8000/static/js/main.js net::ERR_ABORTED 404(未找到)

【问题讨论】:

    标签: python django static web-deployment windows-server


    【解决方案1】:

    在你的 urls.py 中试试这个:

    urlpatterns = [
    .....
    ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT )
    

    还在你的 settings.py 中定义媒体根目录和 url:

    MEDIA_ROOT = 'media'
    MEDIA_URL = '/media/'
    

    更多详情:https://docs.djangoproject.com/en/2.1/howto/static-files/#serving-files-uploaded-by-a-user-during-development

    【讨论】:

    • 感谢您的快速回复。您的链接有一个指向docs.djangoproject.com/en/2.1/howto/static-files/deployment 的链接,它给了我一些有用的信息。我更接近了,但没有解决。我使用 findstatic 来查找我的静态文件。 E:\project\project\static 我输出 BASE_DIR 以查看静态文件应该在哪里。在我的桌面上,它位于:C:\Users\xx\Documents\project\project\project 而服务器:E:\project\project 开发应用程序更深一层。我尝试添加(少一个.parent)PROD_BASE_DIR = Path(file).resolve().parent
    • 我将 PROD_BASE_DIR 添加到 STATICFILES_DIRS 但这没有帮助。
    • 我还添加了您的建议,并尝试使用 /assets/ 而不是 /media/,因为那是我的静态文件所在的位置。这似乎也没有帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-25
    • 2012-10-17
    • 2016-04-08
    • 2020-12-19
    • 2018-05-24
    • 2019-05-23
    相关资源
    最近更新 更多