Не подгружаются css-стили и файлы js
При переходе по адресу localhost/product/2 должна открываться страница товара с номером 2 и подгружаться все необходимые css-стили и файлы скриптов, но загружается страница без скриптов и стилей.
Выводятся вот такие ошибки в косоле браузера:
Refused to execute script from 'localhost/product/template/js/jquery.scrollUp.min.js' because its MIME type ('text/html') is not executable, and strict MIME type checking is enabled.
Refused to apply style from 'localhost/product/template/css/font-awesome.min.css' because its MIME type ('text/html') is not a supported stylesheet MIME type, and strict MIME checking is enabled.
Папка template лежит в папке проекта.
При переходе по адресу localhost/product/2 должен вызываться метод actionView($id) в ProductContoller, где $id =2 , который пока не обращается к модели, а просто вызывает View.
Ниже файл ProductContoller.php
class ProductController
{
public function actionView($id)
{
require_once (ROOT.'/views/product/view.php');
return true;
}
}
Все стили вызываются вот так:
<link href="template/css/font-awesome.min.css" rel="stylesheet">
<link href="template/css/prettyPhoto.css" rel="stylesheet">
скрипты вот так:
<script src="template/js/bootstrap.min.js"></script>
<script src="template/js/jquery.scrollUp.min.js"></script>
Не могу понять почему стили и скрипты не подгружаются
Я ещё заметил, что при указании полного адреса localhost/template... для js и css все работает, но это неудобно и хотелось узнать как сделать так, чтобы этот адрес не нужно было везде прописывать. Тоже самое работает и при адресе ../template...
Ответы (2 шт):
У вас есть элемент, который пытается загрузить некоторый внешний JavaScript.
Указанный вами URL-адрес указывает на файл JSON, а не на программу JavaScript.
Сервер правильно сообщает, что это JSON, поэтому браузер прерывает работу с этим сообщением об ошибке вместо попытки выполнить JSON как JavaScript (что приведет к ошибке).
Скорее всего, основная причина этого заключается в том, что вы пытаетесь сделать запрос Ajax, столкнулись с ошибкой перекрестного происхождения и попытались исправить ее, сообщив jQuery, что вы используете JSONP. Это работает только в том случае, если URL-адрес предоставляет JSONP (который является другим подмножеством JavaScript), чего нет в этом.
На всякий случай продублирую комментарий, который мне помог:
Вы уверены, что хотите брать скрипты от текущего адреса? При адресе http://site.com/test в Вашем случае скрипт будет вызван из адреса http://site.com/test/template/js/bootstrap.min.js. Возможно, сервер ругается из-за этого. Поставьте в адресах в начале /, чтобы файлы забирались от корня адреса. – Vladimir Gonchar