SKIN_FILEの定義(DATA_HOMEとSKIN_DIRの2つを用いるのは冗長では?)

  • ページ: BugTrack
  • 投稿者: jjyun
  • 優先順位: 低
  • 状態: 完了
  • カテゴリー: その他
  • 投稿日: 2004-08-14 (土) 13:12:28
  • バージョン: 1.4.4rc1

メッセージ

default.inc.phpで定義されている SKIN_FILEの定義について

現在SKIN_FILEは、以下のようにDATA_HOMEとSKIN_DIRの両方を用いて 格納先を表されているため、デフォルトの定義では、 DATA_HOMEとSKIN_DIRの格納先を分けて設置することができません。

SKIN_DIR と DATA_HOMEの格納先が同じであれば、pukiwiki.inc.php の SKIN_DIRの定義において DATA_HOMEを用いてその旨が表せますので、SKIN_FILEの定義はSKIN_DIRのみを用いた方がよいのではないでしょうか?

(提案の背景)
現在、DATA_HOMEを公開ディレクトリとなっている場所から外しても動くように設定しようとしています。 Javascript のコードが存在するSKIN_DIRも、DATA_HOMEとあわせて移動させてしまうと、Javascript のコードにアクセスできなくなってしまい、コードを実行することができないため、DATA_HOMEとSKIN_DIRを分けたいと思いました。

(pukiwiki.skin.ja.phpの中でのtrackback.jsは、skin/trackback.js とハードコードされたままだったりすることを見付けちゃいましたが、これらはあまり移動させない方がいいのかな... :))


  • こんにちは :) スキン(SKIN_FILE)はWebサーバー上に露出させる必要のないものですから、DATA_HOMEごと(丸ごと)隠蔽できる様に意図的に関係付けてあります。つまり skin/ ディレクトリ(SKIN_DIR) は DATA_HOME の影響を受けます。 -- henoheno 2004-08-14 (土) 20:12:46
    • なるほど、SKIN_DIRに関する考え方を私が誤解していたのですね。SKIN_DIR は pukiwiki.inc.php の中にある一連のディレクトリ指定のひとつでしたので、当初はそれらにあわせて以下のように設定を変更してしまいました。 -- jjyun 2004-08-14 (土) 21:42:13
      define('SKIN_DIR', DATA_HOME . 'skin/'); ← 誤解していた時の設定例
  • 設置につまづかれている部分については、SKIN_DIR の中に、Webサーバーに露出させる必要のないスキン (*.php) だけでなく、露出させておかないと役に立たない*1 CSS (*css) および JavaScript (*.js) が混在しているのが根本の問題であると認識しております。CSSおよびJavaScriptのファイルをWebサーバーに露出させている領域にコピーしてやればこの件は解決します。 -- henoheno 2004-08-14 (土) 20:10:28
  • ということですので、可能ならばJavaScriptやCSSをSKIN_DIRから追い出したいと思っているのですが、どんな方法がいいと思いますか? あるいはこのままがいいですか? :) -- henoheno 2004-08-14 (土) 20:16:03

  • 私としては、扱いが異なるものを混在させたくないので、JavaScriptやCSSをSKIN_DIRから追い出すのは賛成です。
    対処方法の一案ですが、これらコードの格納先を別途用意し、そこにEXTRA_DIR(名前が適切でなければ変更してください)などと名称を付けて管理するというのはどうでしょう? -- jjyun 2004-08-14 (土) 21:33:51
  • これって、(ロケーションのための)URI/URL と (配置するための)DIR がごっちゃになってるからでは? 両方とも DIR という名前になってるから混乱するわけで・・・ -- みこ 2004-08-15 (日) 21:05:34
  • 追い出す・追い出さないは正直どちらでもいいのですが、同時に(画像などの)公開されるものは全て (xxx)_DIR ではなく (xxx)_URL として名称を分けてほしいです。*2 -- みこ 2004-08-15 (日) 21:24:36
    • (ロケーションのための)URI/URLと(配置するための)DIRの件は、御指摘の通り同一視してます(してましたかな?)。公開/非公開とすべき対象が明確にするような設定名にすることは、設置者にとって優しい配慮かと私も思います。 -- jjyun 2004-08-22 (日) 06:22:25

  • (蒸し返して申し訳ないのですが)改めて設定ファイル(pukiwiki.ini.php)の内容を見たのですが、「Webサーバー上に露出させる必要のないもの」で、個別のDATA_HOMEごとに隠蔽した方が良さそうなものは別にSKIN_DIRだけではなく、DATA_DIRやDIFF_DIRなどもその中に含まれますよね。私には、SKIN_DIRの設定だけを別の設定ファイルでDATA_HOMEに強く依存させる意図がよくわかりません。これらのディレクトリの設定方針は統一していただけると設定時に迷わずに済むのですが、いかがでしょう? 問題点と思ってる2つについて以下に整理してみます。
    • SKIN_DIRとDATA_HOMEの関連付け
      1. 案1
        現在のDATA_DIRの設定と同じく、pukiwiki.ini.phpでDATA_HOMEへ関連付けする(BugTrack/658にて対応されたrefプラグインの機能追加で、UPLOAD_DIRも同じようにDATA_HOME以下に配置しても画像を参照できますね)
         ~pukiwiki.ini.php~
        define('DATA_DIR', DATA_HOME . 'wiki/');
         :
        define('SKIN_DIR', DATA_HOME . 'skin/'); 
        
         ~default.ini.php~
        define('SKIN_FILE', SKIN_DIR . 'pukiwiki.skin.' . LANG . '.php');
      2. 案2
        現在のSKIN_DIRの設定と同じく、default.ini.phpでDATA_HOMEへ関連付けする(ちょっと修正量が多く、冗長のような気もします))
         ~pukiwiki.ini.php~
        define('DATA_DIR_NAME', 'wiki/');
          :
        define('SKIN_DIR_NAME', 'skin/'); 
        
         ~default.ini.php~
        define('DATA_DIR',  DATA_HOME . DATA_DIR_NAME);
          :
        define('SKIN_FILE', DATA_HOME . SKIN_DIR_NAME . 'pukiwiki.skin.' . LANG . '.php');
      3. 案3
        SKIN_DIRの部分のみコメントを付与
          // スキン/スタイルシートファイル格納ディレクトリ
        + // ここは、DATA_HOME からの相対パスを指定します。
          define('SKIN_DIR', 'skin/');
    • CSSやJavascriptのための公開用ディレクトリを準備する
      define('EXT_URL', 'ext/');  
      定義名やディレクトリ名のEXTはあくまで案です(名前付けは難しい)。 -- jjyun 2004-08-22 (日) 07:24:35

  • 少々 SKIN_DIR の設定部分に説明を追加しておきました -- henoheno 2004-08-22 (日) 17:13:45
  • お忙しいところありがとうございます。修正を確認しましたのでこの件は「完了」にしたいと思います。 -- jjyun 2004-08-22 (日) 17:57:13

*1 ※でも致命的ではない
*2 ただ、attachはどっちなのかなんともいえませんが(^^;

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2004-08-22 (日) 17:57:54
Site admin: PukiWiki Development Team

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u7. HTML convert time: 0.276 sec.

OSDN