HTML Base URL и ссылки - PullRequest
       2

HTML Base URL и ссылки

5 голосов
/ 07 декабря 2010

У меня следующая проблема:

URL-адрес http://www.myhomeurl.com/application1/, а база:

<base href="http://www.myhomeurl.com/"/>

Все ресурсы, такие как изображения, CSS и JavaScript будут по адресу:

http://www.myhomeurl.com/css/myfile.css
http://www.myhomeurl.com/js/myscript.js
http://www.myhomeurl.com/images/img.jpg

НО, ссылка будет на «application1», например:

http://www.myhomeurl.com/application1/page1.html
http://www.myhomeurl.com/application1/page2.html
http://www.myhomeurl.com/application1/page3.html

Вопрос заключается в следующем: как применить базовый URL для ресурсов (например, css, js и т. Д.) И применить base / application1 для ссылок на страницы?

Вот проблема, когда у меня есть:

<a href="page1.html">Click me!</a>

Когда пользователь нажимает на эту страницу, страница будет:

http://www.myhomeurl.com/page1.html

а не:

http://www.myhomeurl.com/application1/page1.html

Ответы [ 8 ]

4 голосов
/ 07 декабря 2010

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

<!DOCTYPE HTML>
<html>
  <head>
    <base href="http://www.myhomeurl.com/application1/" />
  </head>
  <body>
    <!-- content -->
  </body>
</html>

Дополнительную информацию можно найти на http://www.w3schools.com/tags/tag_base.asp

edit: Спецификация w3c на базовом теге http://www.w3.org/TR/html4/struct/links.html#h-12.4 также иллюстрирует, как получать изображения из других мест.

2 голосов
/ 07 декабря 2010

Измените вот так на ваших ресурсах

<link href="./css/myfile.css" rel="stylesheet" type="text/css" />   

Не так, как

<link href="http://www.myhomeurl.com/css/myfile.css" rel="stylesheet" type="text/css" />

И ваша база выглядит так

<base href="http://www.myhomeurl.com/application1/"/>
1 голос
/ 07 декабря 2010

Используйте эту переменную в ссылке HTTP_SERVER

define('HTTP_SERVER', 'http://www.myhomeurl.com/application1/');

<a href="<?php echo HTTP_SERVER?>myurlpage/page1.html">Click me!</a>
0 голосов
/ 08 ноября 2017

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

Далее, если ваш URL-адрес mysite.com и ваше приложение расположено на mysite.com/app, тогда вы устанавливаете базу на mysite.com/appкогда вы используете ваш пример info.html, он будет выглядеть как mysite.com/app/info.html.

Вы также можете использовать ../app/info.html и он будет выглядеть как mysite.com/app/info.html

0 голосов
/ 24 марта 2014

Я бы начал все ссылки на стадо с / и с верхнего каталога URI. Это делает их по отношению к домену. Затем просто поместите протокол и домен в базу.

0 голосов
/ 22 марта 2014

Я немного опоздал на этот вопрос, но я не вижу ни одного ответа, который действительно делает то, что (я думаю) вам нужно.

Я предлагаю вам использовать (как уже говорили) базовый URL-адрес, например:

<base href="http://www.myhomeurl.com/application1/" />

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

<link href="../css/myfile.css" rel="stylesheet" type="text/css" />

Или

<style type="text/css">
  @import url(../css/myfile.css);
</style>

Обратите внимание на ../, указывающий браузеру выйти из каталога «application1», поднявшись на один шаг вверх в файловой структуре.

Надеюсь, это поможет:)

0 голосов
/ 07 декабря 2010

Определите две константы для ресурсов CSS и JS, а для ссылок и используйте их в приложении: -

define('RESOURCE_URL','http://www.myhomeurl.com/');
define('LINK_URL','http://www.myhomeurl.com/application1');

чтобы при любом изменении базового URL вы могли просматривать только эти константы.

0 голосов
/ 07 декабря 2010

у вас должно быть что-то вроде этого

root 

   root/css
   root/js

   root/files/html1.htm
   root/files/htmml2.htm

root будет только /// именем вашего сайта

http://www.myhomeurl.com
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...