ビューティフルWebコードスマートフォン用の表示で見るビューティフルWebコード美しいWebサイトのコーディングについて説明をしていきます。この広告は、90日以上更新していないブログに表示しています。いったURL設計をしていきます。ついて意識すべきことをまとめます。172.0.0.1、localhostなどBaseパス:ディレクトリ名(フォルダ名)簡単にいうと、ローカルのapacheなどで開発する場合は、http://localhost/website/http://localhost/を指します。website/があったりなかったり。URLスキームとFQDNはよく意識されるのですが、Baseパスについて考慮漏れがあり、途端に対策に追われることがあります。このBaseパスについて次に説明します。開発初期の段階で、Baseパスを意識すること、しないことで、開発に大きな影響を与えます。クライアントの予算や、意識の違いなどもあるのですが、本番サーバー以外は準備してくれない、というのも珍しくありません。開発環境や、テスト環境として、独立したサーバーを準備できる場合、Baseパスは無しになりますが別の開発環境と相乗りをする場合、このBaseパスを意識する必要がでてきます。document_root直下に配置する想定だったのが、テスト環境やお客様の確認用の環境ではdocument_rootの下にたくさんのサイトのフォルダが区切られいて、そのフォルダに配置することを強制されることがあるのです。"/"からはじまる絶対パスをハードコーディングしていた場合、途端に破綻します。/assets/css/main.cssに配置されるはずのファイルが/[ディレクトリ]/assets/css/main.cssとなり、cssなどがNotFound状態になります。Baseパスが環境によって変わる場合の対策リソースのURLは相対パスにする。(非推奨)URLの階層の変化に絶えられないのでオススメしません。MVCフレームワークでは/Controller名/Action名というURL設計をするのが一般的ですが、Action名がindexの場合、indexは省略可能というルールを設けている場合があります。例として以下のURLを考えます。/user/indexindexは省略可能なので、/user/index/user//userこの3つは全てUserControllerのIndexActionにルーティングされてしまいます。一つ上の階層になっています。リソースの位置を相対パスにすると、こういう階層の変化に耐えられないのです。indexは利用しないという独自ルールを設けることもできますが、リリース後の保守などを他のベンダーがすることもあるので、独自ルールは避けたいところです。フレームワークの機能を利用するフレームワークによっては、css/javascript/imgなどのリソースは直接に記述せずに、viewに準備されているfunctionを利用して出力することで、BaseUrlが自動的に挿入することができます。初期の段階で、これらを開発者に意識させるのです。リソースのパスががfunction経由で出力されてることをコードレビューなどで拾うのがいいのですが、わざわざコードレビューで拾い切るのも大変なので、全ビューをスキャンして正規表現などで、直接リソースのパスが記述されている箇所を捜索するプログラムを実装しておくのもアリかと思います。Baseパスを意識しなかった場合の裏技解決案(非推奨)サイトの相乗りについて、解決策が無いわけではありません。ポートを分けてポートフォワードをする、localにhostsを書いてdomainを自作して、domainによってdocument_rootを切り替えるなど手はあります。お客様の全ての環境にhosts書けますか?とか。hostsを書くなら開発環境、テスト環境にとどめておいて、ステージング、レビュー環境などでは小細工なしで表示させる必要が有ります。開発をまったく知らないクライアントの重役から電話がかかってきて、「俺のPCだと表示されない!大問題だ!」とか、火消しに時間を取られることもあります。BaseURLは、プロジェクト後半で、後から差し込むと大騒ぎになりますが、初期の段階で一旦ルールを作成しておくと、プロジェクトがスムーズに進むと思います。通常のView表示です。URLを管理するクラスを作ろう!仕様変更が悪いのではない。Action名は動詞!?月別アーカイブ参加グループプログラミングはてなブログをはじめよう!human-natureさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。