DJango获取静态引导样式表以在视图中应用 settings.py 基本模板链接

问题描述

我正在为此抓挠头,因为这些都没有道理。

我正在开发模式下运行Django项目。

我的许多页面中都包含base.html。

这是我的文件结构:

django file structure

这是简单的base.HTML代码

<!doctype html>
<html lang="en">

<head>
  <!-- required Meta tags -->
  <Meta charset="utf-8">
  <Meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no">

  <!-- Bootstrap css-->
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">


  <title>RAHQ Locations {% block head_title %} {% endblock %}</title>
</head>

<body style="background-color: #26272b; color: #fff">
  {% include 'navbar.html' %}
  <div class='container-fluid'>
    {% block content %}

    {% endblock %}
  </div>
  {% include 'js.html' %}

  <br>
  <br>
  {% include 'footer.html' %}
</body>

</html>

一切都像这样完美。但是我想对bootstrap css进行更改,因此我下载了bootstrap css文件,将其重命名为styles.css,并将其放置在我的静态文件夹中。

所以我用所有可以访问我的静态styles.css的东西替换了bootstrap href

我遵循所有告诉我调整我的settings.py和url.py的在线指南,以允许使用静态文件

我尝试从view.py中引入路径:

url = staticfiles_storage.path('styles.css')

我什至尝试将整个路径键入href(C:/Try-Django-2.2-master/src/static/styles.css)

我几乎尝试了所有您能想到的东西,但我无法加载样式。我在做什么错!!

如果我在浏览器中输入CSS文件的实际路径,则可以看到所有CSS ...所以我很茫然:

C:/Try-Django-2.2-master/src/static/styles.css

这是我的设置。py:

import os

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
DEBUG = True
ALLOWED_HOSTS = ['54.245.181.209','*']
LOGIN_URL = '/login'

INSTALLED_APPS = [ # components
    'django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','locationSearch',]

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware','django.contrib.sessions.middleware.SessionMiddleware','django.middleware.common.CommonMiddleware','django.middleware.csrf.CsrfViewMiddleware','django.contrib.auth.middleware.AuthenticationMiddleware','django.contrib.messages.middleware.MessageMiddleware','django.middleware.clickjacking.XFrameOptionsMiddleware',]

ROOT_URLconf = 'try_django.urls'

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates','Dirs': [os.path.join(BASE_DIR,'templates')],'APP_Dirs': True,'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug','django.template.context_processors.request','django.contrib.auth.context_processors.auth','django.contrib.messages.context_processors.messages',],},]

Wsgi_APPLICATION = 'try_django.wsgi.application'


DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3','NAME': os.path.join(BASE_DIR,'db.sqlite3'),}
}

AUTH_PASSWORD_VALIDATORS = [
    {
        'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',{
        'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',{
        'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',{
        'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',]

LANGUAGE_CODE = 'en-us'

TIME_ZONE = 'UTC'

USE_I18N = True

USE_L10N = True

USE_TZ = True

STATIC_ROOT = os.path.join(os.path.dirname(BASE_DIR),'src/static')
STATIC_URL = 'src/static/'

STATICFILES_Dirs = [
    os.path.join(BASE_DIR,"src/static"),]

MEDIA_ROOT = os.path.join(os.path.dirname(BASE_DIR),'src/media')
MEDIA_URL = 'src/media/'  # django-storages

解决方法

您需要对代码进行一些更改。

请考虑更改settings.py,然后更改CSS的href链接。

我们在这里...

settings.py

STATICFILES_DIRS = [
    os.path.join(BASE_DIR,'src'),]

CSS的链接应如下所示:

基本模板链接

<link type="text/css" rel="stylesheet" href="{% static 'css/main.css' %}" media="screen,projection" />

希望对您有用!

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...