Хорошо, поэтому я сделал страницы с рамками, и знаю, что я разделил свой проект на top.php и bottom.php. В top.php он ссылается на style.css и ajax_framework.js и т. Д. Теперь это отлично работает, пока я не попытался включить top.php & bottom.php в video / index.php (еще один dirr), мне понравилось:
include "../top.php"; <-- and the originally index.php --> include "../bottom.php";
Теперь, когда я вхожу на сайт, он не загрузит style.css, возможно, потому, что он считает, что style.css должен быть в каталоге videos /, то же самое происходит с ajax_framework.js, которые оба файла находятся в каталоге parent ../.
Теперь, что я делаю? Какой-то метод или техника для решения этой проблемы? Так что мне не нужно копировать style.css и ajax_framework.js в каждый каталог, который у меня есть, потому что позже, если я хочу что-то изменить, мне нужно будет изменить во всех каталогах, что было бы моим последним, что я хочу сделать .. надеюсь вы получили хорошие методы, спасибо
У вас есть как минимум три варианта:
Сделайте все свои URL URL абсолютным URL. Например, измените <script type="test/javascript" src="scripts/foo.js">
на <script type="text/javascript" src="/scripts/foo.js">
. Если вы можете это сделать, это, безусловно, менее навязчивое решение.
Задайте константу BASEDIR
перед тем, как включить top.php
и сделайте каждый путь к ресурсу относительно него:
// in your file that includes top.php <?php define('BASEDIR', '..'); ?> // in top.php <?php if(!defined('BASEDIR')) define('BASEDIR', '.'); ?> <link rel="stylesheet" type="text/css" href="<?php echo BASEDIR; ?>/style.css"/>
Добавьте <base>
HTML <base>
в свой <head>
(этот отстой, не делайте этого):
<base href="/foo"></base> <!-- now all srcs, hrefs and whatnot are relative to /foo -->
Это отстой, потому что даже привязки будут относиться к нему. Поэтому, если у вас есть ссылка, например <a href="#foo">
на странице qaz.php
, с <base href="/bar">
, ссылка будет указывать на /bar#foo
вместо qaz.php#foo
.
Вы не опубликовали свой html, но я предполагаю, что вы не используете абсолютный uri. Вы, вероятно, делаете что-то вроде:
<link rel="stylesheet" type="text/css" href="css/style.css" />
Когда вы должны делать что-то вроде:
<link rel="stylesheet" type="text/css" href="/css/style.css" />
Добавьте <base href="..." />
в top.php. Базовый тег определяет URI, из которого разрешены все относительные URI.
Подробности и пример здесь: http://www.w3.org/TR/html401/struct/links.html#h-12.4
Ответ прост:
В top.php я предполагаю, что у вас есть что-то вроде этого:
<link type="text/css" href="style.css" rel="stylesheet" />
Просто измените его как абсолютный URL, добавив косую черту в начало, например:
<link type="text/css" href="/style.css" rel="stylesheet" />
Теперь браузер будет искать вашу таблицу стилей из корневого каталога документа в абсолютном пути.
Кстати, люди, читающие ваш вопрос, не могут легко понять ситуацию, потому что вы, кажется, ссылаетесь на разные должности. Я считаю, что лучше описать всю проблему в одном посте, потому что я не нашел ваши предыдущие вопросы.