python - 无法在 Django 中显示静态图像和加载 CSS

标签 python html css django pycharm

使用pycharm 2019.2.5, python 3.7, Django 2.2.5, 我正在通过导入模板并通过 Django 为其创建应用程序来创建网站,但我无法让任何静态文件工作。当我运行开发服务器时,没有显示任何字体/css/js/图像。我也无法从我的 HTML 文件中导入谷歌字体。我已经阅读了所有答案,并且发布了我知道的相关数据。这似乎是一个相当普遍的问题,我已经尝试了他们所有的解决方案。如果您需要更多数据,请告诉我。

YSMR       *edited to add. #This is my top-level project created in pycharm.
  YSMR     
    \blog
    \contact
    \schedule
    \sendemail
    \static
       \css   # I plan on adding namespacing for this later
       \fonts
       \js 
       images....    
    \templates
       \index.html
       additional templates...
    __init__.py
    settings.py
    urls.py
    views.py
    wsgi.py

index.html 下面。我可以查看该文件,但同样,嵌入的静态文件和字体不执行。我在下面加载的前几行。

{% load static %}
<!DOCTYPE html>
<html lang="en">
  <head>
    <title>YSMR</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <link href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700&display=swap" rel="stylesheet">

    <link href="https://fonts.googleapis.com/css?family=EB+Garamond:400,400i,500,500i,600,600i,700,700i&display=swap" rel="stylesheet">
    <link rel="stylesheet" href="{% static "css/open-iconic-bootstrap.min.css" %}">
    <link rel="stylesheet" href="{% static "css/animate.css" %}">

设置.py

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

ENV_PATH = os.path.abspath(os.path.dirname(__file__))

STATIC_ROOT = os.path.join(ENV_PATH, '/static/')  #I've tried to change 'static' to something else, but I get an 'unresolved reference' error when I do.

STATIC_URL = '/static/'

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "YSMR/static"), #I get an 'unresolved reference "static"' when I remove the YSMR
]

当我从 STATICFILES_DIRS 路径中删除 YSMR 时,我收到“未解析的引用‘静态’”警告

此外,django.contrib.staticfiles 包含在 INSTALLED_APPS 中

提前致谢。

最佳答案

按如下方式更改您的设置并尝试:

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
STATIC_URL = '/static/'
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "static"),
]

STATIC_ROOT = os.path.join(os.path.dirname(BASE_DIR), "static_cdn")
MEDIA_URL = "/media/"
MEDIA_ROOT = os.path.join(os.path.dirname(BASE_DIR), "media_cdn")

还要确保将这些行添加到主 url 文件中。

if settings.DEBUG:
    urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

关于python - 无法在 Django 中显示静态图像和加载 CSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59243513/

相关文章:

css - 如何在这行代码运行之前添加延迟?

html - 是否可以从循环中随机定位图像?

python - wxPython:使用 EVT_IDLE

python - 在哪里配置日志记录?

用于语言服务器协议(protocol) (LSP) 的 Python 客户端库

javascript - 角色库登录 JavaScript

javascript - Python 与 javascript 列表

javascript - Facebook SDK : Uncaught SyntaxError: Unexpected token _

css - div left 和 div right 不在容器中并排 float

html - 为什么显示: table-cell; hide other elements with media queries?