MENU
  • VPS(レンタルサーバ)比較
  • ITエンジニアの転職
  • IT技術入門(Engineers.LOG)
カテゴリー
  • IT関連 (623)
    • Bootstrap (2)
    • クラウド (4)
    • サーバー技術 (185)
    • ストレージ (7)
      • NetApp (7)
    • ネットワーク技術 (91)
      • Cisco (36)
      • Juniper (18)
      • 負荷分散装置 (17)
    • パソコン関連 (92)
      • MAC (25)
      • Windows (54)
    • プログラミング (154)
      • Ansible (11)
      • C言語 (23)
      • Python (111)
        • Django (20)
    • 仮想化 (88)
      • Docker (63)
      • VMware (23)
  • VPS (200)
    • ABLENET VPS (16)
    • Amazon Lightsail(VPS) (2)
    • ConoHaVPS (37)
    • mixhostVPS (4)
    • WebARENAIndigo (16)
    • XServerVPS (34)
    • お名前.com VPS (12)
    • さくらのVPS (24)
    • カゴヤクラウドVPS (13)
    • シンVPS (7)
  • レンタルサーバー (56)
    • エックスサーバー (38)
  • 光回線 (8)
  • 技術スキルアップ開発・学習 (7)
    • Envader (2)
    • RareTECH (2)
    • Udemy (3)
もう現役20年超えましたー。経験値ならだれにも負けないエンジニア技術ブログ
インフラエンジニアの技術LOG
  • VPS(レンタルサーバ)比較
  • ITエンジニアの転職
  • IT技術入門(Engineers.LOG)
インフラエンジニアの技術LOG
  • VPS(レンタルサーバ)比較
  • ITエンジニアの転職
  • IT技術入門(Engineers.LOG)
  1. ホーム
  2. IT関連
  3. プログラミング
  4. Python
  5. Django
  6. 【Django】docker環境で構築した静的ページ(SSL)のサイトマップを作成する方法

【Django】docker環境で構築した静的ページ(SSL)のサイトマップを作成する方法

2021 9/16
Django
2020年7月27日2021年9月16日

Dockerコンテナで構築したDjangoのWebサイトにおいて静的ページのサイトマップを作成したのでまとめます。

Docker上の環境でDjangoのWebサイトを構築する手順は以下のページを参考にしてください。

あわせて読みたい
【docker-compose】Django+PostgreSQL+Nginxを連携した構築手順(CentOS8+VPS環境) VPS+CentOS8環境下で、docker-composeを利用し、Djangoの環境構築をしましたのでまとめます。 今回の構築では「docker-compose」でDjango+PostgreSQL+Nginxを連携した設...
目次
安くて高速!高性能VPSで快適開発!
最速5分でサーバー構築
>>>こちらをチェック

エンジニア必見! 技術力を伸ばすVPS徹底比較
>>>VPS比較

Docker環境で構築した【Django】の静的ページ(SSL)のサイトマップを作成する手順

Webサーバを構築する上で重要になるのが「サイトマップ」です。
そもそも、サイトマップとはサイト全体のページ構成を一覧表示で記載しているページで、htmlやxml形式で表示することができます。

サイトマップを作成することで、ユーザーやGoogleなどの検索エンジンにWebサイトの全体構成をわかりやすく伝えることができ、インターネット上で認識されることが早くなりSEO効果にも役立ちます。

今回は静的ページに対するサイトマップの作成手順をまとめています。
対象となる静的ページは以下のURLとなります。

https://test.engineers-life.com/test1/

また、設定・編集するファイルは全て「Djangoプロジェクト配下のファイル」を編集します。

プロジェクト配下の「settings.py」で「sitemap」アプリを追加

サイトマップを作成する際は、まずはプロジェクト配下の「settings.py」を編集します。

$ vim mysite/settings.py

「INSTALLED_APPS」に以下でハイライトしたアプリを追加します。
また、サイトマップIDをsettings.pyのどこで良いですが(私は最後に記載)記載をします。

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.sites',
    'django.contrib.sitemaps',
    'myhp',
]

------中略------

# sitemap
SITE_ID = 1

migrate実施

上記を設定後、migrateコマンドを実施します。
今回はDocker上でDjangoを構築しているので「docker-compose run xxx 」を頭につけて実行します。

以下のコマンドは、「docker-compose.yml」に記載されている「Webサービス名」となります。
詳細は上記で作成の仕方をリンクしているので確認ください。

$ docker-compose run web python manage.py migrate
Starting postgres ... done
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, myhp, sessions, sites
Running migrations:
  Applying sites.0001_initial... OK
  Applying sites.0002_alter_domain_unique... OK
$ 

Django管理画面から対象のドメインを編集 ※追加で設定すると「SITE_ID」の変更が必須!

次に管理画面「https://xxxxxx.com/admin」へアクセスすると「サイト」と言う項目が追加されているので、クリックし編集画面に切り替えます。

ここで注意しておくことは、前述で記述した「SITE_ID」を「1」として設定をしています。
編集するサイトのURLはIDが「1」となりますので、デフォルトで表示されている「examle.com」自体を編集します。

もし、追加でURLを追加した場合、そのURLのSITE_IDは「2」となります。
IDの確認の仕方は以下の画面のURLより赤枠の箇所を確認してください。

プロジェクト配下の「urls.py」を編集

次に静的ページを読み込むために「urls.py」を編集します。

$ vim mysite/urls.py

from django.contrib import admin
from django.urls import path, include

from django.contrib.sitemaps.views import sitemap
from .sitemaps import StaticViewSitemap

sitemaps = {
    'static': StaticViewSitemap,
}

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('myhp.urls', namespace='sitemap')),
    path('sitemap.xml/', sitemap, {'sitemaps': sitemaps}, name='django.contrib.sitemaps.views.sitemap'),
]     

6−7行目でsitemapと静的ページ(static)を読み込み

sitemaps = {
    'static': StaticViewSitemap,
}

と

path('sitemap.xml/', sitemap, {'sitemaps': sitemaps}, name='django.contrib.sitemaps.views.sitemap'),

を追加します。

さらに今回は以下のページをサイトマップとして表示するので

https://test.engineers-life.com/test1/

15行の本サイトのルートに「namespace」として「sitemap」を追記します。

プロジェクト配下に「sitemaps.py」を新規作成

次にプロジェクト配下で新規に「sitemaps.py」を作成します。

$ vim mysite/sitemaps.py

今回はSSLで構築しているサイトなので7行目でプロトコルを「https」として指定
10行目でurls.pyで「namespace」で記載した「sitemap」と対象のページ「test1」を記述します。

from django.contrib import sitemaps
from django.urls import reverse

class StaticViewSitemap(sitemaps.Sitemap):
    priority = 0.5
    changefreq = 'weekly'
    protocol = 'https'

    def items(self):
        return ['sitemap:test1']

    def location(self, item):
        return reverse(item)
                            

サイトマップ設定後も「migrate」実施

上記設定後、再度migrateコマンドを実行します。
以下の様にエラーが発生せず正常に完了したことを確認します。

$ docker-compose run web python manage.py migrate
Starting postgres ... done
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, sessions, sites
Running migrations:
  No migrations to apply.

これで、静的ページのサイトマップの作成は以上となります。
以下にアクセスするとサイトマップが作成されていることがわかります。

hhttps://test.engineers-life.com/sitemap.xml/

Googleにサイトのページ作成・変更をした際のPingを送信

サイトマップを作成し、サイトが更新されるたびに変更をしたことをGoogleに知らセル場合は「Ping」コマンドを実行します。

python manage.py ping_google/sitemap.xml

通常は上記のコマンドを実行しますが、この環境はDockerコンテナで構築している環境なので以下のコマンドを実行します。

$ docker-compose run web python manage.py ping_google /sitemap.xml
Starting postgres ... done
$ 

エラーが発生せず完了できればOKです。

Dockerコンテナ上で構築した静的ページのサイトマップを作成する手順は以上となります。

エンジニアスキルをアップする勉強法

ITエンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。

あわせて読みたい
現役エンジニアがおすすめするVPSレンタルサーバ比較(高速SSD限定) 格安VPS比較(2025年最新版)

Django
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする コメントをキャンセル

email confirm*

post date*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)



検索
カテゴリー
新着記事
  • XServerVPS アニメ風 男の子 プログラミングをしている VPSを利用している 楽しそうにしている
    XServerVPSで証明書(SSL)を取得する方法
    2025年3月24日
    XServerVPS
  • レンタルサーバ アニメ風 女の子 楽しんでパソコンをしている 目がキラキラ
    WordPressがレンタルサーバよりVPSで利用する方がおすすめの理由
    2025年3月19日
    VPS
  • VPS レンタルサーバー アニメ風 女の子 プログラミングをしている VPSを利用している 楽しそうにしている
    VPSとクラウドの違いとは?初心者向けにわかりやすく解説
    2025年3月5日
    VPS
  • シンVPS アニメ風 女の子 パソコン プログラミングをしている VPSを利用している 楽しそうにしている
    シンVPSはWindows serverを利用できない。その理由と利用できるOSは?
    2025年3月4日
    シンVPS
  • シンVPS アニメ風 女の子 パソコン プログラミングをしている VPSを利用している 楽しそうにしている
    シンVPSでゲームを利用する環境はあるのか
    2025年3月4日
    シンVPS
  • シンVPS アニメ風 女の子 パソコン プログラミングをしている VPSを利用している 楽しそうにしている
    シンVPSのサイトの表示速度は他社に比べて早いのか?
    2025年3月4日
    シンVPS
目次
目次