2016-10-17 2 views
0

Я решил принять применение правил этикета для сайта, .htaccess:404 переориентировать работу на текущей директории

... 
# Not found 
ErrorDocument 404 /error/404.html 
... 

Это работает, но включен css и js файлы подключаются на текущей директории, а не относительно корня. При возникновении ошибки при загрузке css и js файлы в подкаталогах, например mysite.com/item/item/.


я могу решить, как этот:

... 
# Not found 
ErrorDocument 404 mysite.com/error/404.html 
... 

Он будет работать везде, но url меняется без шанса задней двери.

Я хочу получить то же самое без изменений url-address.

Как я могу это сделать?

ответ

1

Добавить это в header вашей 404.html

<base href="/"> 

это работает для всех ссылок и изображений, включенных

+1

Я люблю его уже! Благодарю. –

2

Убедитесь, что ссылка на файлы css/js внутри вашего файла 404.html является абсолютной (и не относительной).

Вместо использования

<script src="script.js"></script> 
<link rel="stylesheet" type="text/css" href="style.css"> 

Или

<script src="../script.js"></script> 
<link rel="stylesheet" type="text/css" href="../style.css"> 

Вы должны использовать

<script src="/static/js/script.js"></script> 
<link rel="stylesheet" type="text/css" href="/static/css/style.css"> 

Это / в начале ссылки сообщает браузеру принять JS/файлы CSS от корня вашего домена (то есть http://DOMAIN/static/...).

Смежные вопросы