DJANGO:静态文件未在实时服务器中加载(但在本地加载)?

Posted

技术标签:

【中文标题】DJANGO:静态文件未在实时服务器中加载(但在本地加载)?【英文标题】:DJANGO: Static files not loading in live server (but loads locally)? 【发布时间】:2020-11-29 14:40:00 【问题描述】:

Django 网站(django 版本 1.11.29)未从实时服务器上的静态文件夹加载 css 和 js 脚本。但是在本地加载。有什么想法吗?

to css 似乎是正确的,但没有转到 css 样式表本身。

链接到 localhost 主机上的 css:

<link rel="stylesheet" href="/static/website/login/login-style.css">

链接到实时服务器上的 CSS:

<link rel="stylesheet" href="/static/website/login/login-style.css">

settings.py

import os

# other code...

# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

# Static files (CSS, javascript, Images)
# https://docs.djangoproject.com/en/1.11/howto/static-files/
#updated
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, STATIC_URL)

登录.html

<link rel="stylesheet" href="% static 'website/login/login-style.css' %">

静态文件夹结构:

blah\project\website\static\website\login

更新: 我意识到我需要通过python manage.py collectstatic 将所有文件复制到根静态文件夹以进行生产。

但是仍然没有加载。我错过了一步吗?更新设置.py

【问题讨论】:

Django 在生产环境中不提供静态文件。预计将由网络服务器完成。 docs.djangoproject.com/en/3.1/howto/static-files/#deployment collectstatic 仅将所有静态文件收集到在“STATIC_ROOT”上声明的目录中。您仍然需要告诉服务器静态文件的 URL。例如,在 pythonanywhere 上,您必须在 Web 应用设置中正确配置 URL 和 PATH。 你在哪里部署? 【参考方案1】:

基于 django 文档,你应该使用 nginx 或其他 web 服务器来提供静态文件:

https://docs.djangoproject.com/en/3.0/howto/static-files/#deployment

如果您不想通过网络服务器提供服务,您可以使用 whiteNoise:

http://whitenoise.evans.io/en/stable/django.html

【讨论】:

【参考方案2】:

这对我有用:

urls.py 上添加这一行到 urlpatterns :static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 所以它看起来像这样:

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

并导入静态:from django.conf.urls.static import static

【讨论】:

【参考方案3】:

Django 仅在开发服务器上从“app/static/app/style.css”获取静态文件。当我们在真实服务器上部署时,它会从 assets 文件夹中获取。

【讨论】:

以上是关于DJANGO:静态文件未在实时服务器中加载(但在本地加载)?的主要内容,如果未能解决你的问题,请参考以下文章

自定义静态文件未在 django 项目中加载

静态 CSS 文件未在 Django 框架中加载

Favicon 未在 Django 中加载

基本模板未在 Django 中加载

jQuery 未在 Django 管理主页/仪表板、登录和注销页面中加载

C#/IIS/MVC:静态内容未在不同环境中加载