2011-09-21 6 views
2

フレームワークを使用すると、html srcとhref属性の完全なURLを簡単にリストできます。相対パスの代わりに完全なURLを表示することで、 。しかしこれはより速いのですか?余分なDNSルックアップが発生しますか?コンテンツが同じサーバー上にある場合のベストプラクティスは何ですか?html srcとhref属性の相対パスまたはURL

<img src='/images/img1.png' /> 

CodeIgniterの画像ヘルパーのimg()対

<img src='http://site.com/images/img1.png' />

this from the users' guideのように動作します:

echo img('images/picture.jpg'); 
// gives <img src="http://site.com/images/picture.jpg" /> 

とCodeIgniterのアンカーヘルパーアンカー()this from the users guideのように動作します:

echo anchor('news/local/123','My News'); 
// gives <a href="http://example.com/index.php/news/local/123" >My News</a> 
+1

私はリモートサーバー上で開発するので、httpルックアップは常に機能します。各保存時にローカルのIDEとリモートサーバーを同期させ、リモートサーバー上でのみコードを実行します。 "http://mysite.com/"の部分は、私のフレームワークのメソッドによって生成されるので、ドメインを切り替えると簡単に変更できます。誰もDNSルックアップスピードについて私の質問に答えてくれませんでした。 – steampowered

+0

私はcodigniterのものを含めるために私の質問を編集し、codeigniter – steampowered

答えて

4

DNSには、相対URLまたは絶対URLがあるかどうかは関係ありません。とにかく、あなたのブラウザは、サーバーのURIが前面に表示されていることになります。また、ネットワークスタックは初めてルックアップを行い、IPをキャッシュします。何かが間違っていない限り、ページごとに1つのルックアップしか存在しません。もちろんYMMVですが、これはどのように動作するのでしょうか。

0

移植性が私にとって問題になります。私はそれだけに基づいて第二の選択肢を選ぶだろう。

4

絶対パスを絶対に使用しないでください。

それは後でお尻にあなたをかむでしょう。

たとえば、別のドメインを切り替える/追加する場合。

テストから運用サーバーに移行します。

基本的にルールは内部URLが相対的である必要があります。

+0

を最近編集しました。こののようなhrefの完全なURLを使用していて、$ basehttp = "http://www.mydomain.com" configファイルでは、ドメインを変更するのはとても簡単でしたが、どのドメインを使用するかはまだ不明です。私はpagespeed POVから考えています。 – AMB

1

ああ、本当にフルパスを使いたくないのです。あなたは、あなたの前に多くの作業を持っています:

  • サイトを開発したい場合は、ローカルに
  • あなたが/変更ドメイン(開発、ステージングなど)
  • を追加するには、CDNの使用に切り替えます

最近のほとんどのものがローカルディレクトリの検索を実行するので、あなたの開発環境も壊れてしまいます。ドメインでそれを行うことはできません。

また、デベロッパー環境では、制作サイトから引き離され、画像の修正や追加が非常に手間がかかります。

最も重要なことは、コードを扱っている他の開発者があなたを殺そうとすることです。それはあなたの健康に悪いことです。

+0

ほとんどのフレームワークでは、ドメインの変数を定義できるので、1行のコードでサイトドメイン全体を簡単に変更できます。ローカルにするために必要なのは、コードの1行に "localhost /"を追加することだけです。 – steampowered