#php #html
#php #HTML
Вопрос:
Я создаю веб-сайт, и я переместил все содержимое HTML <head>
в header.php файл, в котором я ссылаюсь на свои таблицы стилей и т.д..
На других моих страницах я включаю этот документ. Но когда я включаю его на страницах, которые находятся во вложенной папке, ссылка на таблицу стилей больше не является правильной, я решил это, просто скопировав ссылку и добавив ../
, что мне было интересно, есть ли лучший способ сделать это? как динамически получить правильный путь? Без использования абсолютного пути, например, я хочу иметь возможность перемещать папку проекта и при этом работать.
header.php
<?php
session_start();
?>
<!DOCTYPE html>
<html lang="nb" dir="ltr">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta charset="utf-8">
<!-- CSS -->
<link rel="stylesheet" href="css/reset.css">
<link rel="stylesheet" type="text/css" href="./css/style.css?<?php echo time(); ?>">
<link rel="stylesheet" type="text/css" href="../css/style.css?<?php echo time(); ?>">
<link rel="stylesheet" type="text/css" href="../../css/style.css?<?php echo time(); ?>">
<!-- Title -->
<title>Inventar</title>
</head>
<body>
И тогда у меня есть:
<?php
include "header.php";
?>
на всех моих страницах.
Комментарии:
1. Ваша проблема с путями связана с использованием относительного пути, а не абсолютного пути. Вам нужно указать путь ко всем вашим ссылкам с абсолютным адресом, основанным на корне домена вашего веб-сайта. Итак, предположим, что у вас есть
www.mydomain.org/css/style.css
, ваш включенный PHP-файл должен иметь<link rel="stylesheet" type="text/css" href="/css/style.css">
, начиная с/
указания, что он начинается в корне домена. Это означает, что независимо от того, где вызывается этот PHP include, он всегда ссылается на правильный адрес.
Ответ №1:
изменить header.php чтобы
<?php
session_start();
?>
<!DOCTYPE html>
<html lang="nb" dir="ltr">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta charset="utf-8">
<!-- CSS -->
<link rel="stylesheet" href="<?=$tempPath;?>/css/reset.css">
<link rel="stylesheet" type="text/css" href="<?=$tempPath;?>/css/style.css?<?php echo time(); ?>">
<!-- Title -->
<title>Inventar</title>
</head>
<body>
всякий раз, когда вы включаете add path, определите переменную
<?php
$tempPath="../";//like this add path according to the file
include "header.php";
?>
Также при необходимости вы можете использовать dirname(__FILE__)
, чтобы вы могли определить путь из header.php
Комментарии:
1. Спасибо!, и раздражает, и успокаивает, когда решение настолько простое
2. Не делая это точно так, нет, но достаточно близко, чтобы я понял это, я просто создал переменную в своем конфигурационном файле с именем $projectPath=dirname( FILE ); затем я просто ссылаюсь на $projectPath /css / style.css
3. Lol два человека по имени Мартин, сбивают с толку