Показывать контент HTML с PHP (и стиль загрузки) - PullRequest
0 голосов
/ 15 марта 2019

У меня есть несколько HTML-страниц (в папке «web»), в которых используются некоторые стили и сценарии, и мне нужно показать эти HTML-страницы с помощью сценария PHP. Вот упрощенная версия кода, который я использую:

<?php

 readfile("web/index.html");

Работает, но не загружает ресурсы (css, js, images), потому что URL не являются абсолютными:

 <link href="css/bootstrap.css" rel='stylesheet' type='text/css' />
 <link href="css/style.css" rel='stylesheet' type='text/css' />

Он не находит ресурсы, потому что ищет папку css в той же папке, что и скрипт PHP.

Есть ли обходной путь для этого?

Ответы [ 2 ]

2 голосов
/ 15 марта 2019

Вам нужно добавить add <base href='...'> в html, как это (не проверено):

$page_content=preg_replace("%</head%i","<base href='web/'></head",$page_content);

вставьте это после файла чтения. См. MDN веб-документы для получения дополнительной информации об этом теге .

В некоторых браузерах (по крайней мере, Firefox и edge) это также работает, если вы печатаете базовый тег перед выводом $ page_content. Это грязно, но, может быть, это достаточно хорошо.

0 голосов
/ 15 марта 2019

Простой, вы можете использовать что-то вроде этого

index.php

<html>
 <head>
  <php include("menu.php"); ?>
 </head>
<body>

</body>
</html>

menu.php

<link href="css/bootstrap.css" rel='stylesheet' type='text/css' />
<link href="css/style.css" rel='stylesheet' type='text/css' />

для базового пути используйте переменную типа $base = "http://localhost", затем используйте элементы вроде <img scr="<?php $base ?>/images/myimage.jpg" />

Надеюсь, что это отвечает на ваш вопрос

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