CPI ACE01 + Movable Type でステージング構成のウェブサイトを構築する　その2・テストサイトから公開サイトへ転送する

[前回の記事](http://qiita.com/TakeshiNickOsanai/items/e4cf5f6f287297d45788) の続きです。前回インストールしたMovable Type を使って

- 静的なhtmlを出力
- テストサイトで確認
- SmartRelaseを利用して、公開サイトへ配信

を行います。

## SmartReleaseとは

CPI ACE01 に付帯している、テストサイトから公開サイトへデータを配信する機能です。詳細は以下を参照ください。

http://www.cpi.ad.jp/archives/pdf/support/setupguide_ace.pdf
http://www.cpi.ad.jp/shared/detail/smartrelease.html


## 実際の運用

今回の構成では以下を行います。

- テストサイトから公開サイトへ配信するファイルの設定
- Movable Type のテンプレートをステージング構成に対応するように変更
- 実際の配信

## 制限(できること、できないこと)

ステージング構成を利用した場合、Movable Type の一部機能が利用できなくなります。

### できること

Movable Type が出力したhtmlやcss、JacaScriptなど、静的なファイル類、および管理画面などから登録した画像、ファイル類を公開サイトへ配信することができます。

### できないこと

Movable Type の検索、トラックバック、コメントなどは使えなくなります。
また、Movable Type のダイナミックパブリッシングも利用できませんので、ご注意ください。


## テストサイトから公開サイトへ配信するファイルの設定

まず最初に、テストサイトから、公開サイトへの配信設定を行います。

ユーザーポータルページから「SmartRelease」をクリックします。

![2_01.png](https://qiita-image-store.s3.amazonaws.com/0/83767/b5b2cd96-e22a-4e24-b0a4-816458cc8267.png)




SmartRelease の管理画面から、「リリース」をクリックします。

![2_02.png](https://qiita-image-store.s3.amazonaws.com/0/83767/46c3afc9-4ca7-73ec-7aa9-24aaf276b49c.png)



画面下部の [除外リストに追加] ボタンをクリックします。

![2_03.png](https://qiita-image-store.s3.amazonaws.com/0/83767/58a42659-4542-6a17-dfe5-558fae252982.png)



テストサイトのファイル一覧が表示されますので、Movable Type がインストールされているディレクトリにチェックを入れ、除外対象にします。

![2_04.png](https://qiita-image-store.s3.amazonaws.com/0/83767/86f14170-eb93-4638-1f77-d2486964c587.png)



設定を保存して終了です。これで、SmartRelase実行時に、Movable Type のプログラムは公開サイトへ転送されず、htmlや画像ファイル類などが転送されるようになります。

![2_05.png](https://qiita-image-store.s3.amazonaws.com/0/83767/537d9fa5-6505-ffc1-425c-111d1aaf79f6.png)



## Movable Type のテンプレートをステージング構成に対応するように変更

Movable Type のテンプレート設定を、ステージング構成に適用するように変更します。

Movable Type はMTタグと呼ばれるタグを利用して、各種データを出力します。
ここでMTタグが出力する絶対URLの処理を行います。

Movable Type でサイトを構築する際、サイト内の各種リンクは、記事への絶対URLを出力する [&lt;MTEntryPermaLink&gt;](http://www.movabletype.jp/documentation/appendices/tags/entrypermalink.html) やウェブサイト・ブログのホストを出力する [&lt;MTBlogURL&gt;](http://www.movabletype.jp/documentation/appendices/tags/blogurl.html) などのタグを利用します。

しかし、ステージング構成で運用する場合、テストサイトと公開サイトではドメインが異なるため、そのままではテストサイトでの確認に支障があります。

このため、URLの処理を行う必要があります。その一つとして、絶対URLの表示を相対URLに変更する方法があります。

ここでは変更方法の例をいくつかご紹介します。

### 相対パスを出力するタグの利用

Movable Type には、相対パスを出力するタグが存在します。

[&lt;MTWebsiteRelativeURL&gt;](http://www.movabletype.jp/documentation/appendices/tags/websiterelativeurl.html)
[&lt;MTBlogRelativeURL&gt;](http://www.movabletype.jp/documentation/appendices/tags/blogrelativeurl.html)

これらのタグは、絶対URLではなく、ホストからの相対URLを/(スラッシュ)始まりの相対パスで出力します。これらのタグを利用して、絶対URLを相対URLとして出力します。


### 絶対URLの置換処理

Movable Type のタグには、置換処理を行う [replace](https://www.movabletype.jp/documentation/appendices/modifiers/replace.html) というグローバルモディファイアが存在します。これを利用して、絶対URLを再構築時に相対URLに変換する方法です。

例として、[MTUnless](http://www.movabletype.jp/documentation/appendices/tags/unless.html) を利用した置換処理をあげてみます。

```
<MTUnless replace="/http://example.com/","/">
<MTBlogURL>index.html
</MTUnless>
```

[MTUnless](http://www.movabletype.jp/documentation/appendices/tags/unless.html) は、nameモディファイアが偽(false)のときに実行されるブロックタグです。

この例では、nameモディファイアを指定していません。つまり、最初から偽の状態であり、自動的にグローバルモディファイアである置換処理が実行されます。


&lt;MTBlogURL&gt;　の出力結果が

```
http://example.com/index.html
```

だった場合、

```
<MTUnless replace="http://example.com/","/">
<MTBlogURL>
</MTUnless>
```

の出力結果は

```
/index.html
```

のように、ホストURLからの相対パスで出力されます。

上記は一例で、他にも相対URLを出力する方法は複数あります。ご自身が管理運用しやすい方法で設定を行うと良いでしょう。

(MTタグを利用した置換処理を行った場合、相応にメンテナンス工数が増えますので、ご自身が管理可能な範囲で行うことをお薦めします)


## 実際の配信

設定が全て済んだら、公開サイトへ配信してみましょう。

SmartRelease の管理画面から「すべてリリース」を選択します。

![2_06.png](https://qiita-image-store.s3.amazonaws.com/0/83767/3ced4cc2-fa93-4f6e-0c9d-8fa4000f362d.png)


確認画面が表示されますので、リリースを実行します。

![2_07.png](https://qiita-image-store.s3.amazonaws.com/0/83767/f8077f09-45f0-bd37-0c34-9177cdaacc55.png)


リリースが終了したら、公開サイトへの転送は終了です。

実際に、公開サイトのURLにアクセスして、転送が完了しているか確認してみましょう。

## 免責

今回ご紹介した方法は一例で、SmartRelease や Movable Type の実際の稼働を保証するものではありません。
構築の際はご自身で環境およびサイト構築の確認を行った上で運用ください。