#php #web #laravel #uri #relative-path
#php #веб #laravel #uri #относительный путь
Вопрос:
Среди прочего, у меня проблема с Laravel и его маршрутами.
Я реструктурирую веб-сайт, который я запустил в Сеть ранее в этом году, и я решил использовать views напрямую вместо вызова внутренних данных через AJAX. Поскольку я буду развертываться на общем хостинге, я переместил общую папку Laravel в корневую папку проекта, а Laravel — в его собственную папку. Я использую WAMP для своей среды разработки, и в настоящее время это настройка моего проекта:
проект-корневая папка
- laravel
- приложение
- bootstrap
- поставщик и т.д.
- css
- js
- .htaccess
- index.php и любые другие файлы, которые мне нужны
После настройки путей Laravel в папке bootstrap эта настройка работает нормально, и я могу перейти к localhost /project-root-folder, чтобы просмотреть представление, которое я настроил в Route::get(‘/’).
Моя проблема заключается в том, что я пытаюсь получить доступ к другим страницам моего веб-сайта из представления домашней страницы (которое я объявил, используя другие маршруты для вызова представлений). Laravel продолжает возвращать 404 сообщения об ошибках, и маршрут работает, только если URL-адрес содержит localhost/project-root-folder/index.php. Я включил mod_rewrite в Apache в WAMP и перезапустил веб-сервер, и вот мой файл .htaccess:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
Кроме того, всякий раз, когда я пытаюсь получить доступ к ссылке на вторую страницу, используя index.php в URL-адресе (просто чтобы убедиться, что он работает) все мои файлы CSS и JS повреждены. Кажется, что он прекращает попытки найти файлы из корневой папки, но вместо этого пытается найти их в какой-то воображаемой папке на основе URL. Итак, если моя вторичная ссылка называется localhost/project-root-folder/cars/ all, и для того, чтобы она заработала, я должен ввести localhost/project-root-folder/index.php/cars/all, веб-сайт попытается найти мои CSS-файлы в localhost /project-root-folder /index.php/cars, а это совсем не то, что я хочу.
Вот некоторые из объявлений моих файлов JS и CSS в моем представлении макета заголовка:
<link rel="stylesheet" type="text/css" media="screen" href="./css/custom.css">
<link rel="stylesheet" type="text/css" media="screen" href="./style.css">
<link rel="stylesheet" type="text/css" media="screen" href="./menu/css/simple_menu.css">
<script src="./js/jquery.tools.min.js" type="text/javascript"></script>
<script src="./js/translate.js" type="text/javascript"></script>
<script src="./js/common.js" type="text/javascript"></script>
Похоже, что эти ссылки работают на главной странице, но не на любой из связанных страниц, хотя я специально указал, что их следует проверять из корневой папки, добавляя к ссылке ./.
Любая помощь?
Комментарии:
1. Зачем проходить через все эти проблемы, когда вы можете просто сохранить обычную структуру, в которой функционирует laravel, и ваш .htaccess указывает на общую папку на вашем общем хостинге?
2. если вы просто используете laravel так, как он должен использоваться по умолчанию, вы избежите всех этих проблем, как заявил Ortix92.
3. @Ortix92 Изначально я следил за парой веб-сайтов, таких как creolab.hr/2013/03 /… и coderwall.com/p/erbaig Я удалил проект и перезапустил новый проект с оригинальной структурой Laravel и поместил в него свой код. Я не трогал никаких файлов конфигурации или файлов путей, только .htaccess, и по-прежнему безуспешно. Я чувствую, что упускаю что-то болезненно очевидное.
4. Это то, что вам нужно: driesvints.com/blog/laravel-4-on-a-shared-host