Не подгружаются 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), чего нет в этом.

→ Ссылка
Автор решения: phpBeginner

На всякий случай продублирую комментарий, который мне помог:

Вы уверены, что хотите брать скрипты от текущего адреса? При адресе http://site.com/test в Вашем случае скрипт будет вызван из адреса http://site.com/test/template/js/bootstrap.min.js. Возможно, сервер ругается из-за этого. Поставьте в адресах в начале /, чтобы файлы забирались от корня адреса. – Vladimir Gonchar

→ Ссылка