CMSからエクスポートしたHTMLで静的Webサイトを作るには

質問全般・改善要望
返信する
yahara
メンバー
メンバー
記事: 10
登録日時: 2012年3月16日(金) 22:41

CMSからエクスポートしたHTMLで静的Webサイトを作るには

投稿記事 by yahara »

初めまして。エンジニアでもないのに2月中旬からなぜかMODxを使い始めた者です。

件名のように、MODxからエクスポートしたHTMLファイルを、別のサーバに置いてWebサイトを運用しようと考えています。
エクスポート機能を使って、サイト内の要素やリンクを全て相対で出したいのです。
エクスポートまではうまくいくのですが、エクスポートしたファイルに下記のような問題が生じています。

・Wayfinderで生成したグローバルナビゲーションに、CMSのサブドメインが残存する (本番環境のサーバから、制作環境のサーバにリンクしてしまう)
・チャンクで[~id~]指定した部分はリンクが、index.php=idのまま フレンドリーURLが反映されない(リンク切れになる)

なお、下記のことは試してみました。
・プラグイン「TinyMCE」の設定タブから、Path Optionsを「docrelative」にする(URL自動補完機能を抑える)
・グローバル設定:インターフェースとその他の機能:相対パスを渡す を 「はい」
・baseタグの消去 ※本番環境のbaseタグを入れると制作環境でリンク切れが起こることを懸念
・.htaccess内のRewriteBase / の書き換え

またはリンクが全て相対化できれば、画像素材などは制作環境のものを参照するような形になっても良いと考えています。

お知恵を拝借させていただけないでしょうか。

どうぞ宜しくお願いいたします。

-----
ご利用のサーバ: isle 
Webサーバのバージョン : 不明 おそらくApache
PHPのバージョン : 不明
データベースのバージョン : 不明
MODXのバージョン : 1.0.5J-r1
ブラウザ :chrome最新
-----
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: CMSからエクスポートしたHTMLで静的Webサイトを作るには

投稿記事 by yama »

yahara さんが書きました:・Wayfinderで生成したグローバルナビゲーションに、CMSのサブドメインが残存する (本番環境のサーバから、制作環境のサーバにリンクしてしまう)
上記の件は、
http://modx.jp/news/772.html
画像
1.0.5J-r8で追加した改善が役に立つのではと思います。たしかに実用を考えると不便でした
yahara さんが書きました:・チャンクで[~id~]指定した部分はリンクが、index.php=idのまま フレンドリーURLが反映されない(リンク切れになる)
こちらは、後ほど検証してみます。もし改善できそうであればテストに協力いただけると助かります。
この機能はファイルひとつの差し替えで他に影響なく変更できるので、既存のサイトのMODXをまるごとアップデートしなくても改善可能です
yahara
メンバー
メンバー
記事: 10
登録日時: 2012年3月16日(金) 22:41

Re: CMSからエクスポートしたHTMLで静的Webサイトを作るには

投稿記事 by yahara »

yamaさん、お早いお返事をありがとうございます。
週明けに確認してみます。

なおテストですが、もしできることがあればお知らせお願いします。
宜しくお願いいたします。
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: CMSからエクスポートしたHTMLで静的Webサイトを作るには

投稿記事 by yama »

よろしくです。ファイルひとつ差し替えで試す場合は、最新版MODXの manager/actions/export_site.static.php をコピーして試してください
(できれば最新1.0.6を試してほしいですが)
yahara
メンバー
メンバー
記事: 10
登録日時: 2012年3月16日(金) 22:41

Re: CMSからエクスポートしたHTMLで静的Webサイトを作るには

投稿記事 by yahara »

yamaさん、アドバイスありがとうございました。

下記のことを行ってみましたが、ちょっと厳しかったです。

1.
ファイルひとつ差し替えで試す場合は、最新版MODXの manager/actions/export_site.static.php をコピーして試してください
ダッシュボードでは正しく表示が反映されていたようですが、
いざエクスポートしてみるとすべて失敗してしまいました。

2.
1.0.5J-r1 から1.0.6へのバージョンアップを試みましたが、データベースの情報とかみ合わないようで、
エラーが出てツリーが表示されなくなりました。

バージョンアップの手順は下記を行いました。
・ftpサーバ上の該当フォルダのファイルを全てダウンロード
・assets、managerの総上書き
・assetsのimages、files、cssを上書き
・installの実行(バージョンアップ)
⇒エラーになったのでftpサーバ上の該当フォルダのファイルを全て削除し、バックアップしたものを全てアップロード⇒回復

3.
新しく1.0.6をインストールし、バックアップをとっていた既存のDBをインポートしてみましたが、
やはりデータベースとCMSがかみ合わないようでところどころにエラーが出ます。
(マネージャーを触るとqmにシステム警告。トップページにアクセスすると画像のようなエラー画面に。)
エラー画面
エラー画面
error.gif (20.12 KiB) 閲覧された回数 55179 回
なお当方の環境ですが、バックアップを取ったDBから、
# Server version: 5.1.47
# PHP Version: 5.2.14
であることがわかりました。

まずはご報告です。
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: CMSからエクスポートしたHTMLで静的Webサイトを作るには

投稿記事 by yama »

エラーのイメージが強いのでびっくりされると思いますが、これはQuickManagerのよくあるエラーですね。管理画面にアクセスできる場合は、QuickManagerを無効にしてみてください。
また、データベース上の不整合が生じる可能性があるのはプラグイン部分だけです。他の部分では構造的には変わりません。

> ・assets、managerの総上書き
> ・assetsのimages、files、cssを上書き
> ・installの実行(バージョンアップ)

この手順なら問題ないはずですが、間違いないでしょうか。ポイントは、

・assets/plugins/ディレクトリを必ず全て上書きすること
・installerで必ず全てのプラグインをアップデートすること

です。(慣れている人であれば好みに応じて取捨選択できますが)

エラーを見る限りはさほど致命的なものとは思えないので、なるべく傷を広げずにポイントを絞っていけたらと思います。
できるだけ解決までお付き合いさせていただきますので、細かいことでも気付いたことがあればお気軽にご連絡ください
yahara
メンバー
メンバー
記事: 10
登録日時: 2012年3月16日(金) 22:41

Re: CMSからエクスポートしたHTMLで静的Webサイトを作るには

投稿記事 by yahara »

お返事ありがとうございます。
いただいてから間が空いてしまい、すみません。

まずは現状、不完全なHTMLをテキストファイルで文字列置換しながら調整を進めることになりそうです。

画像を貼ったエラーは3に対するものでした。
こちらはプラグインのqmを停止してエクスポートしてみましたが、
1/43 - ホーム(index.php?id=1) スキップ 非公開リソースのためエクスポートしません。
というエラーがすべてのファイルに対して出てきます。

なお各ファイルは公開設定のチェックは付いています。

2のエラーですが、手元で記録を取らなかったため、どういうエラーだったかは思い出せません。
環境のコピーを作成してテストすることになりそうなので、
まとまった時間が取れた時に再挑戦してみます。
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: CMSからエクスポートしたHTMLで静的Webサイトを作るには

投稿記事 by yama »

1.0.6をインストールしてからデータをインポートした場合は、もう一度1.0.6を上書きでアップデータを実行する必要があります。行なう処理はconfigの作り直しと拡張機能のアップデートだけなので、うまくいかないと思った時は気軽にやり直してみてください。もとのDBデータがあるようなので、なんとかなるのではと思います。
サーバはisleなんですね。もしかするとサーバにも何か原因があるかもしれませんが。
yahara
メンバー
メンバー
記事: 10
登録日時: 2012年3月16日(金) 22:41

Re: CMSからエクスポートしたHTMLで静的Webサイトを作るには

投稿記事 by yahara »

ごぶさたをしております。

modxを1.0.5J-r1→1.0.6にアップグレードしてみました。

エクスポートを行ったところ、やはり
1/43 - ホーム(index.php?id=1) スキップ 非公開リソースのためエクスポートしません。
というエラーがすべてのファイルに対して出てきます。
各ファイルは公開設定のチェックは付いています。

なお1.0.6にした後のDBインポートは行なっていません。

※DBインポートを行ったのは別フォルダです。
 別途1.0.6を新規インストールした際に、
 DBの指定を既存のDBにできなかったので、いったん新規のDBで設定したところに、古いDBを流し込んだという次第です。


どのあたりの設定をいじれば良いのか見当がつかないので、お力をお貸し頂ければ幸いです。
最後に編集したユーザー yahara [ 2012年4月03日(火) 13:44 ], 累計 1 回
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: CMSからエクスポートしたHTMLで静的Webサイトを作るには

投稿記事 by yama »

エクスポートに関しては特に設定する箇所はないです。isleのサーバをお使いとのことで、このisleの環境に何か特性があるのかもしれません。
ご利用のプランでは、お試し利用などはできますでしょうか?できそうであれば、申し込んで実際に試してみます
yahara
メンバー
メンバー
記事: 10
登録日時: 2012年3月16日(金) 22:41

Re: CMSからエクスポートしたHTMLで静的Webサイトを作るには

投稿記事 by yahara »

yama さんが書きました:エクスポートに関しては特に設定する箇所はないです。isleのサーバをお使いとのことで、このisleの環境に何か特性があるのかもしれません。
ご利用のプランでは、お試し利用などはできますでしょうか?できそうであれば、申し込んで実際に試してみます
お返事ありがとうございます。
こちら確認しましたが、現時点ではお試し利用はできないようです。
(プランはisleのiClusta+のようです)
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: CMSからエクスポートしたHTMLで静的Webサイトを作るには

投稿記事 by yama »

http://home.isle.ne.jp/order/trial/trial_guide.html
こちらは違いますでしょうか?
yahara
メンバー
メンバー
記事: 10
登録日時: 2012年3月16日(金) 22:41

Re: CMSからエクスポートしたHTMLで静的Webサイトを作るには

投稿記事 by yahara »

yama さんが書きました:http://home.isle.ne.jp/order/trial/trial_guide.html
こちらは違いますでしょうか?
そちらのページは見落としておりました。あるんですね!
プランはちょっとわかりませんが、おそらく一番安いものだと思われます。
ご面倒おかけしますが、どうぞ宜しくお願いいたします。
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: CMSからエクスポートしたHTMLで静的Webサイトを作るには

投稿記事 by yama »

開発版で試してみたところ、問題なくエクスポートできました。

以下、試していただきたいのですが
manager/actions/export_site.static.phpをテキストエディタで開いて、「file_get_contents」という文字列を検索してください。2~3ヶ所あると思いますが、この文字列の先頭にある「@」を削除してください。これを削除することで、もしエラーが発生している場合は、そのエラー内容を出力します。その出力内容を教えていただけますでしょうか?
yahara
メンバー
メンバー
記事: 10
登録日時: 2012年3月16日(金) 22:41

Re: CMSからエクスポートしたHTMLで静的Webサイトを作るには

投稿記事 by yahara »

yama さんが書きました:開発版で試してみたところ、問題なくエクスポートできました。

以下、試していただきたいのですが
manager/actions/export_site.static.phpをテキストエディタで開いて、「file_get_contents」という文字列を検索してください。2~3ヶ所あると思いますが、この文字列の先頭にある「@」を削除してください。これを削除することで、もしエラーが発生している場合は、そのエラー内容を出力します。その出力内容を教えていただけますでしょうか?
たびたびありがとうございます。
「@file_get_contents」→「file_get_contents」と文字列置換をかけてみたところ、2か所置換できました。
ですが再度上書きアップロードののちエクスポートを試みまして、状況は変わっておりません。

他の部分へのエラーは出ていません。

---

なお、グローバル設定の「エイリアスパスを使用」を「はい」にしたところ、エクスポートに成功しました。
お騒がせいたしました。

あとはWayfinderで生成されたナビゲーションがrootrelativeで吐き出される課題がありますが、
こちらのメニュー構造はあまり動かないので、Wayfinderを使用せず通常のhtmlで組むことで対応したいと思います。
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: CMSからエクスポートしたHTMLで静的Webサイトを作るには

投稿記事 by yama »

なるほど、これはバグですね。同ファイル内に if($somecontent === false) という記述があるので、ここを1文字変更して if($somecontent !== false) に書き換えると修正できると思います。次リリースで対応します。
yahara
メンバー
メンバー
記事: 10
登録日時: 2012年3月16日(金) 22:41

Re: CMSからエクスポートしたHTMLで静的Webサイトを作るには

投稿記事 by yahara »

ご対応ありがとうございます。
yama さんが書きました:なるほど、これはバグですね。同ファイル内に if($somecontent === false) という記述があるので、ここを1文字変更して if($somecontent !== false) に書き換えると修正できると思います。次リリースで対応します。
上記の修正は、下記の私の発言の部分に関するもの、ということで合っておりますでしょうか。
yahara さんが書きました:なお、グローバル設定の「エイリアスパスを使用」を「はい」にしたところ、エクスポートに成功しました。
ということで、文字列置換ののち、「エイリアスパスを使用」を「いいえ」にしてみましたが、
やはり元のエラーが出てきます。
「1/46 - ホーム(index.php?id=1) スキップ 非公開リソースのためエクスポートしません。」

まずはご連絡いたします。

なお、エイリアスパスを使用するのは良いのですが、すると階層構造ができて、
2階層目以降のページでは、1階層目への相対リンクが機能せず、同階層内のリンクになってしまう問題が生じています。

root
├A.html
├B
│├C.html
│├D.html
│└E
│ └F.html
└G.html

※上記の場合、A.htmlから他のページへのリンクは問題なく通るが、
B.htmlからA.htmlやD.htmlへのリンクは、B/A.htmlやB/D.htmlとして解釈されてしまいます。
同様にF.htmlからA.htmlへのリンクは、B/E/A.htmlとなります。

※CMSを置いてあるサーバと公開サーバが別のため、baseurlは使用していません。
※URLの指定方法は[~数字(id)~]としています。
リンクを全てhttp://~の絶対パスにすれば解決しそうですが、せっかくmodxを使っているので、何とかならないかな?と思いました。

運用状況
CMS環境:http://(xxx.xx)/xxx/xxx/(…CMS一式)
↓エクスポート、アップロード
公開環境:http://www(数字).ocn.ne.jp/~(名前)/(…ファイル一式)

諸々お騒がせいたしますが、ご協力のほど、宜しくお願いいたします。
添付ファイル
export_site.static.zip
(3.52 KiB) ダウンロード数: 491 回
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: CMSからエクスポートしたHTMLで静的Webサイトを作るには

投稿記事 by yama »

添付のファイルに差し替えて、出力内容に関して教えていただけますでしょうか?状況に応じてtest1・test2・test3などの文字列を出力しますので、どれが出力されるかを教えていただきたいです。
添付ファイル
export_site.static.zip
(3.55 KiB) ダウンロード数: 474 回
yahara
メンバー
メンバー
記事: 10
登録日時: 2012年3月16日(金) 22:41

Re: CMSからエクスポートしたHTMLで静的Webサイトを作るには

投稿記事 by yahara »

yama さんが書きました:添付のファイルに差し替えて、出力内容に関して教えていただけますでしょうか?状況に応じてtest1・test2・test3などの文字列を出力しますので、どれが出力されるかを教えていただきたいです。
ありがとうございます。
エイリアスパス使用をいいえにしても、無事エクスポートできました!
返信する