2011-09-21 3 views
2

Использование структуры позволяет легко перечислить полный url для моих атрибутов html src и href, и я чувствую, что я более тщательно перечисляю полный URL-адрес вместо относительного пути , Но это быстрее? Возникаю ли я дополнительным поиском DNS? Какова наилучшая практика, когда содержимое находится на одном сервере?Относительный путь или URL-адрес для атрибутов html src и href

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

против

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

помощник изображения IMG CodeIgniter (в) работает как 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 всегда работает. Я синхронизирую свой локальный идеал с удаленным сервером при каждом сохранении, и я запускаю только код на удаленном сервере. Часть «http://mysite.com/» генерируется методом в моей структуре, поэтому ее легко изменить, если я переключаю домены. Никто не ответил на мой вопрос о скорости поиска DNS, которая была моей целью боли. – steampowered

+0

Я отредактировал мой вопрос, чтобы включить материал codigniter, а также tagged codeigniter – steampowered

ответ

4

Что касается DNS, это действительно не имеет значения, если у вас есть относительный или абсолютный URL. В любом случае, ваш браузер в конечном итоге ожидает URI сервера. Кроме того, ваш сетевой стек выполняет поиск в первый раз и кэширует IP-адрес. Если что-то пойдет не так, должен быть только один поиск на странице. YMMV, конечно, но это должно быть так, как все это работает.

0

Переносимость была бы проблемой для меня. Я бы выбрал второй вариант, основанный только на этом.

4

«Никогда» (почти никогда) не используйте абсолютные пути.

Это укусит вас в задницу позже.

Например, при переключении/добавлении другого домена.

Переход от вашего теста к производственному серверу.

В основном правило внутреннего URL должно быть относительным.

+0

Недавно я купил премиальный скрипт, который использовал полный url в href как этот и определил $ basehttp = "http://www.mydomain.com"; в конфигурационном файле, поэтому изменение домена было очень простым, но все еще неясно, какой из них использовать. Я думаю, из PSP. – AMB

1

О, вы действительно не хотите использовать полный путь. Вы будете иметь много работы впереди вас:

  • Если вы хотите разработать сайт локально
  • вас изменения/добавления доменов (разработка, постановка, и т.д.)
  • Вы переключитесь на использовании CDN

Вы также разрушите среду разработки, так как большинство современных будут выполнять поиск в локальном каталоге. Не удается сделать это с доменом.

Кроме того, в среде разработчиков вы будете тянуть с места производства, что сделает внесение изменений и добавление изображений чрезвычайно сложными.

Самое главное, что другие разработчики, работающие с вашим кодом, попытаются вас убить. И это плохо для вашего здоровья.

+0

Большинство фреймворков позволяют вам определять переменную для домена, поэтому легко изменить весь домен сайта с помощью одной строки кода. Все, что необходимо, чтобы сделать его локальным, добавить «localhost /» в одну строку кода. – steampowered