2017-08-23 4 views
0

私はDjangoを使用してWebアプリケーションを開発していますが、すべてうまくいっていますが、DjangoはCSSが非常に遅く、{%static 'Layout.css'%}を挿入する必要があります。

問題1:過去1週間の 私のプロジェクトの中で、私は、ユーザーと呼ばれるアプリを持っており、それは以下の構造を有する:

User 
>templates 
    >User 
    >Layout.html 
    >Home.html 
>static 
    >css 
    >User 
    >Layout.css 
    >Home.css 

私はすべての私の間で同じヘッダーと左側のメニューを持つようにしたいです私はそれについてどうやって行ったのですか?

Home.htmlにLayout.htmlを拡張する場合Layout.html

{% load static %} 
<!DOCTYPE html> 
<html> 
<head> 
<link rel="stylesheet" href="{% static 'User/css/Layout.css' %}"> 
{% block head %} 
{% block title %} 
{% endblock %} 
{% block references %} 
{% endblock %} 
{% endblock %} 
</head> 

<body> 
<header class="uppermenu"> 
</header> 

<div class="leftsidemenu"> 
</div> 

<div class="content"> 
{% block content %} 
{% endblock %} 
</div> 

</body> 
</html> 

Home.html

{% extends "User/Layout.html" %} 
{% load static %} 

{% block head %} 
{% block title %} 
<title>Home</title> 
{% endblock %} 

{% block references %} 
<link rel="stylesheet" href="{% static 'User/css/Home.css' %}"> 
{% endblock %} 
{% endblock %} 

{% block content %} 
<!--Each page is going to have different content but the left side menu 
and the header should remain the same --> 
{% endblock %} 

、私はHome.cssとそれを置くようにしてくださいませんを追加したいです。 Layout.htmlとHome.htmlにスタイルシートを挿入する場所はどこですか?彼らは "頭の中"、{%block references%}、{%block content%}、どこにいるのでしょうか?ベストプラクティスは何ですか?

2)問題2 - (迷惑1)

私は「のpython manage.pyのrunserver」と入力し、常に私は、彼らがどのように見えるか見るために私のテンプレートと静的ファイルに変更を加える際にページをリロードします。私はHTMLファイルの変更が直ちに起こるのに対し、CSSの変更は約1時間(時にはそれ以上)かかることがあります。それは私をかなり減速さ​​せるので、とても変わって迷惑です。

For example: 
If I change <p1>Hello</p> to <p1>Bye</p> in Home.html and reload the 
page, I could see the changes immediately and "Hello" changes to "Bye"     
as it is supposed to be. 

But if I change p1 {color: red}; to p1 {color: green} in my Home.css 
then the changes take place about 1 hour later (didn't really set up a 
timer but it takes so long). 

私は通常Chromeを使用しますが、Safariを試したところ、結果は同じです。誰かがこれらの問題で私を助けてくれますか?なぜ私はそれが起こっているのか分からないので、2番目の私はさらに懸念しています。

import os 


SECRET_KEY = 'whatever' 


ALLOWED_HOSTS = [] 

INSTALLED_APPS = [ 
'Application', 
'Home', 
'Login', 
'User', 
'django.contrib.admin', 
'django.contrib.auth', 
'django.contrib.contenttypes', 
'django.contrib.sessions', 
'django.contrib.messages', 
'django.contrib.staticfiles', 
] 

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 = 'Agent_WebApp.urls' 

TEMPLATES = [ 
{ 
    'BACKEND': 'django.template.backends.django.DjangoTemplates', 
    'DIRS': [], 
    '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 = 'Agent_WebApp.wsgi.application' 

DATABASES = { 
'default': { 
    'ENGINE': 'django.db.backends.mysql', 
    'NAME': 'AAA', 
    'USER': 'root', 
    'PASSWORD': 'AAA', 
} 
} 



AUTH_PASSWORD_VALIDATORS = [ 
{ 
    'NAME':   

'django.contrib.auth.password_validation.UserAttribute  
SimilarityValidator', 
}, 
{ 
    '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_URL = '/static/' 

編集:私は、開発段階ではまだだと書いてDjangoのアプリは、通常と異なるCSSスタイルシートを追加するためのブロックを予約したときに行かなかった私のウェブサイトは、私の場合のために、まだ

+0

キャッシュを削除しようとしましたか?このリンクは役に立ちます。 https://stackoverflow.com/questions/7013735/turn-off-caching-of-static-files-in-django-development-server –

答えて

0

生きますすべてのページに適用される一般的なCSS。私は、次のプラクティスに従ってください。

<head> 
 
    <meta charset="UTF-8"> 
 
    <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
 
    <!-- Add all the css that will apply to all pages --> 
 
    <link rel="stylesheet" type="text/css" href="{% static 'services/service/css/bootstrap.min.css' %}"> 
 
    <link rel="stylesheet" type="text/css" href="{% static 'font-awesome/css/font-awesome.min.css' %}"> 
 
    <link rel="stylesheet" type="text/css" href="{% static 'css/nav_fixed.css' %}"> 
 
    <link rel="stylesheet" href="{% static 'css/footer.css' %}"> 
 
    {% block addStyles %} 
 
    <!-- Adding other custom styles for different pages --> 
 
    {% endblock addStyles %} 
 
    <link rel="shortcut icon" type="image/x-icon" href="{% static "images/logo.jpg" %}" /> 
 
    <title>{% block pageTitle %} Page title{% endblock pageTitle %}</title> 
 
</head>

問題2の場合: はあなたがSTATIC_ROOTを設定している方法についての詳細を与えることができます。場合によっては、Ctrl + F5を押してブラウザを強制的に再読み込みする必要が生じることがあります。

よろしくお願いします。

+0

質問を編集してsettings.pyを追加しました – Sukhrab

+0

STATIC_ROOTとMEDIA ROOTを追加しました静的フォルダとメディアフォルダの場所をsettings.pyにそれぞれ指します。このようにMEDIA_ROOT = os.path.join(BASE_DIR、 'path_to_/media') STATIC_ROOT = os.path.join(BASE_DIR、 'path_to/static')。 次に、manage.py collectstaticコマンド – deaspo

+0

を実行します。次のhttps:// stackoverflowを参照してください。com/questions/12204136/django-on-serverサーバで – deaspo