2016-07-01 2 views
1

Я относительно новичок в этой структуре MVC для веб-приложений.MVC - ссылки CSS

Вот структура моего проекта.

enter image description here

Файл, который вы видите справа от изображения находится внутри папки 'просмотра данных.

Когда я хочу, чтобы связать файл CSS, почему путь должен быть href="/css/stylePortfolio.css"

Почему это не href="../../public/css/stylePortfolio.css"?

+0

Как вы загрузили это? – Chay22

+0

@ Chay22 Что ты имеешь в виду? – padawanTony

+0

Поскольку ваш корневой путь вашего сайта является папкой index.php, ваша общая папка при наличии папки CSS. – amiceli

ответ

1

Что вы ищете, это HTML, который отправляется в браузер пользователей. Браузер ничего не знает о структуре вашего приложения. Он просто читает ссылку href и загружает файл с http://example.com<link>, где <link> - это /css/main.css.

Когда настроено правильно, то веб-корень вашего веб-сайта в вашем /общественной папке. Это означает, что все, что запрашивает браузер, равно относительно вашего веб-корня. Таким образом, если вы хотите связать файл css, вам нужно подумать об этой ссылке относительно ваших проектов. веб-корень, не относительно вашего корня проекта.

Пример: Скажем, вы создаете новый проект в /home/user/AwesomePhpProject. Теперь /home/user/AwesomePhpProject называется вашим корнем проекта.

В вашем корневом каталоге проекта вы создаете каталог, public. Вы настраиваете этот каталог как ваш веб-корень, используя VirtualHost (при использовании Apache) или директиву root (при использовании Nginx). /home/user/AwesomePhpProject/public теперь ваш веб-корень. Если браузер запрашивает /css/main.css, он будет направлен на /css/main.cssОтносительно на ваш веб-корень. В нашем случае это будет /home/user/AwesomePhpProject/public/css/main.css.

Большинство современных приложений разделяют проект и корень сети по соображениям безопасности.

+0

Благодарим вас за ответ. Я начинаю понимать. Не могли бы вы немного разобраться? ex: Что такое веб-корень? Что такое корень проекта? Как они разделены? – padawanTony

+0

Добавил пример – Pete

0

Это потому, что передний конец ссылка (например, CSS и JS) по сравнению с текущего файла вы. А так как ваш корень в public вы должны указать URL из этого каталога (вы не можете связаться с любым файл на верхнем уровне корневого каталога).

2

Как ваш index.php находится в общей папке, поэтому все виды загружаются в общую папку. Вот почему вы должны объявить путь CSS из открытого корня. При необходимости вы можете изменить путь.

В этом случае, вы можете объявить глобальную переменную или постоянной вашего главного контроллера с путем папки CSS

define('CSS_PATH', 'http://localhost/fab/public/css/'); 

Теперь использовать это как

<link rel="stylesheet" href="<?=CSS_PATH?>bootstrap.css"> 
+0

, когда я это сделаю, я получаю сообщение об ошибке 'Ресурс интерпретируется как таблица стилей, но передается с текстом типа MIME/html:« http://fab.app/fab.app/public/css/bootstrap.min.css ".' – padawanTony

+0

Добавьте это в свой' .htaccess' и дайте мне знать 'AddType text/css .css' – WebDevRon

+0

Я сделал это. Нет разницы. Проблема в том, что путь неправильный. Это 'http: // fab.app/fab.app/public/css/bootstrap.min.css' , когда это должно быть' 'http: // fab.app/css/bootstrap.min.css' – padawanTony

0

Why is it not href="../../public/css/stylePortfolio.css"?

Поскольку точкой входа вашего MVC является index.php из паба . Итак, все ваши ссылки css и js должны относиться к общей папке

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