无法显示静态图像并在Django中加载CSS

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

使用pycharm 2019.2.5,python 3.7,Django 2.2.5,我通过导入模板并通过django创建模板来创建网站,但是我无法使用任何静态文件。当我运行开发服务器时,没有显示fonts / css / js / images。另外,我无法从HTML文件导入Google字体。我已经阅读了所有答案,并发布了我所知道的相关数据。这似乎是一个相当普遍的问题,我已经尝试了所有解决方案。让我知道是否需要更多数据。

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="{% static '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" %}">

Settings.py

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中

提前感谢。

python html css django pycharm
2个回答
0
投票

如下更改设置,然后尝试:

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)

0
投票

如下更改设置,然后尝试:

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

]

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

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

if settings.DEBUG:
    urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
© www.soinside.com 2019 - 2024. All rights reserved.