マルチドメインのRevolutionのcontext設定  【解決済み】

質問全般・改善要望
返信する
cookie
メンバー
メンバー
記事: 6
登録日時: 2010年11月13日(土) 09:00

マルチドメインのRevolutionのcontext設定

投稿記事 by cookie »

[サーバ]
 ホスト&契約タイプ:valuedomain core-mini
 ネットワーク:インターネット
 Webサーバ: Apache1.3.37
 PHPバージョン:5.2.5
 DB:MySQL5.1.22
[modx]
 バージョン:Revo. 2.0.4-pl2
 
[クライアント]
 ブラウザ:chrome

お世話になります。
Revolutionにてマルチドメインのサイトをこのページhttp://www.belafontecode.com/how-to-hos ... evolution/の設定で構成してサブドメイン用のコンテキストを作成してドキュメントを作成したのですが、サブドメインのサイトでテンプレートのスタイルシートを適用出来ません。

デフォルトのサイト("web"コンテキスト)をdefault.sample.com
サブドメインのサイトをsub.sample.com("sub"コンテキスト)とした場合、各コンテキストのキー設定は以下の通りにしました。

"web"コンテキスト

base_url : /
http_host : default.sample.com
site_url : http://default.sample.com/

"sub"コンテキスト

base_url : /
http_host : sub.sample.com
site_url : http://sub.sample.com

テンプレートはmodxcms.comからダウンロードしたClarityでheadの部分は、
<head>
<base href="[[++site_url]]" />
<title>-[[++site_name]] | [[*pagetitle]]</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="[[++base_url]]assets/templates/clarity/css/1.css" type="text/css" media="screen,projection" />

<script src="[[++base_url]]assets/templates/clarity/sifr/sifr.js" type="text/javascript"></script>
<script src="[[++base_url]]assets/templates/clarity/sifr/sifr-addons.js" type="text/javascript"></script>

</head>

となっています。デフォルトの"web"で作成したドキュメントは正しくスタイルシートが適用されます。同じ問題を持った人のトピックで<link rel="stylesheet" href="[[++base_url]]assets/templates/clarity/css/1.css" の[[++base_url]]の部分を取ったら動いたというレスがあったので試した所、症状は変わりませんでした。

cssファイルをリソースとして作成してリソースIDをスタイルシートに指定すると正しく適用されますがスタイルシートの指定する画像ファイルはassets/templatesフォルダーにアップロードしてパスを指定しても画像は表示されません。
sama55
メンバー
メンバー
記事: 816
登録日時: 2009年8月03日(月) 08:16

Re: マルチドメインのRevolutionのcontext設定

投稿記事 by sama55 »

cookie さんが書きました:"sub"コンテキスト
site_url : http://sub.sample.com
site_url : http://sub.sample.com/
最後のスラッシュは入ってますでしょうか?(それともここだけの誤植?)

引用)
site_url - Set this to "http://dev.modxcms.com/" (or your subdomain url). Don't forget the trailing slash. Remember this setting is (scheme+http_host+base_url).
あと、実際に出力されたHTMLソースを見れば何か分かると思いますが、どうでしょね。
cookie
メンバー
メンバー
記事: 6
登録日時: 2010年11月13日(土) 09:00

Re: マルチドメインのRevolutionのcontext設定

投稿記事 by cookie »

sama55さん、またまたお世話お掛けします。
site_urlの最後の/は入っています。
表示されたページのソースのhead部分は以下の通りです。

<head>
<base href="http://sub.sample.com/" />
<title>-modxテストサイト | home</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link rel="stylesheet"/assets/templates/clarity/css/1.css" type="text/css" media="screen,projection" />

<script src="/assets/templates/clarity/sifr/sifr.js" type="text/javascript"></script>
<script src="/assets/templates/clarity/sifr/sifr-addons.js" type="text/javascript"></script>

</head>

cssファイルの指定部分を

<link rel="stylesheet"http://default.sample.com/assets/templa ... /css/1.css" type="text/css"

と言うようにModxをインストールしたディレクトリーを直接指定すると正しく表示されます。

modxの本家サイトのフォーラムで似たような質問がありました。

http://modxcms.com/forums/index.php?topic=51180.0

このトピックの最後のレスの部分でサブドメインのフォルダーにある.htaccessにredirect parmanentを入れたらどうかと言うレスがありましたので真似して、

"Redirect parmanent /assets/ http://default.sample.com/assets/" と、メインサイトのassetsフォルダーへリダイレクトするように入れて見ましたが効果ありませんでした。
sama55
メンバー
メンバー
記事: 816
登録日時: 2009年8月03日(月) 08:16

Re: マルチドメインのRevolutionのcontext設定

投稿記事 by sama55 »

cookie さんが書きました:site_urlの最後の/は入っています。
単なる記事の誤記でしたか・・・
cookie さんが書きました:表示されたページのソースのhead部分は以下の通りです。

<link rel="stylesheet"/assets/templates/clarity/css/1.css" type="text/css" media="screen,projection" />

cssファイルの指定部分を
<link rel="stylesheet"http://default.sample.com/assets/templa ... /css/1.css" type="text/css"
と言うようにModxをインストールしたディレクトリーを直接指定すると正しく表示されます。
上のlinkタグには' "href=' の属性名が無いようですが・・・
テンプレート上では、
<link rel="stylesheet" href="[[++base_url]]assets/templates/clarity/css/1.css" type="text/css" media="screen,projection" />
としてるのですよね?う~~ん
cookie
メンバー
メンバー
記事: 6
登録日時: 2010年11月13日(土) 09:00

Re: マルチドメインのRevolutionのcontext設定  【解決済み】

投稿記事 by cookie »

返信が遅くなってすみません。

マルチドメインの設定方法をこのページ http://www.h-quadrat.com/techblog/111-m ... nglish.php のやり方に変えた所、解決しました。この方法だとサブドメインどうしだけでなく全く異なったドメインを扱えるようです。

何かRevo.は未知の領域という感じで先行き不安ですが、また躓いたらよろしくお願いします。 :)
返信する