为了账号安全,请及时绑定邮箱和手机立即绑定

404 找不到静态文件 - Django

404 找不到静态文件 - Django

胡说叔叔 2023-10-31 19:22:27
我有一个关于 django 的问题。我最近购买了一个共享服务器的实例,我想将我的 django 网站从 AWS 移动到该服务器(使用 Cpanel)。在 AWS 上一切正常,但当我切换到 Cpanel 时,所有静态文件都丢失了。这是我的设置.py:STATIC_URL = '/static/'STATIC_ROOT = os.path.join(BASE_DIR, 'static')MEDIA_ROOT = os.path.join(BASE_DIR, 'media')MEDIA_URL = "/media/"STATICFILES_DIRS = [    os.path.join(BASE_DIR, 'static'),    ]我的项目结构:my_project|-app/    |-...    |-views.py|-db.sqlite3|-manage.py|-media/|-my_project/    |-...    |-settings.py|-static/    |-main_page/        |-js/            |-my-script.js我像这样添加静态文件:{% load static %}<script src="{% static 'main_page/js/my-script.js' %}"></script>这是错误:GET http://my.domain.com/static/main_page/js/my-script.js net::ERR_ABORTED 404 (Not Found)当我转到文件的 URL 时,它会将其理解为我的 URL 之一:
查看完整描述

2 回答

?
qq_花开花谢_0

TA贡献1835条经验 获得超7个赞

您需要在 urls.py 中添加静态和媒体文件配置,如下所示


from django.conf import settings

from django.conf.urls.static import static


urlpatterns = [

    # ... the rest of your URLconf goes here ...

urlpatterns  +=  static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

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

django 文档:https://docs.djangoproject.com/en/3.1/howto/static-files/


查看完整回答
反对 回复 2023-10-31
?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

对于那些仍在寻找静态文件解决方案的人,请尝试 Django 包Whitenoise。如果您按照说明进行操作,则安装和使用都很容易。


一些简化的步骤:


收集静态 - 确保安装前存在静态文件


 python manage.py collectstatic

安装 Whitenoise - 此步骤取决于您如何管理软件包、更新正确的文件(例如 Pipfile 或requirements.txt)并安装。下面的命令只是安装包的示例。


 pip install whitenoise

更新settings.py中的静态根


 STATIC_ROOT = BASE_DIR / "staticfiles"

将以下内容添加到您的MIDDLEWAREsettings.py 中 - 来自 Whwitenoise 文档,Whitenoise 包应放置在django.middleware.security.SecurityMiddleware


 `MIDDLEWARE = [

   'django.middleware.security.SecurityMiddleware',

   'whitenoise.middleware.WhiteNoiseMiddleware', #add it here exactly after security middleware

   ...

 ]

现在重新启动或重建应用程序以检查它是否适合您。


查看完整回答
反对 回复 2023-10-31
  • 2 回答
  • 0 关注
  • 125 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信