Laravel路线指向项目目录外

时间:2019-05-24 16:37:08

标签: php laravel laravel-5 server wamp

所以我是Laravel的新手。 我有一个使用Composer创建的名为Blog的项目,并放置在Wamp服务器的WWW内。

我正在使用以下路线

Route::get('/', function () {
    return view('welcome');
});

Route::get('/contact', function () {
    return view('contact');
});

Route::get('/about', function () {
    return view('about');
});

这是我在views文件夹中的layout.blade.php中使用的代码。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <ul>
        <li><a href="/">Home</a></li>
        <li><a href="/about">About</a></li>
        <li><a href="/contact">Contact</a></li>
    </ul>
</body>
</html>

单击“主页”后,我将转到http://localhost 如何确定将我带到http://localhost/blog/public

此外,如何从url中隐藏“公共”文件夹?

我确实将.env文件更改为此

APP_URL=http://localhost/blog/public/
有什么想法?我要去哪里错了? 谢谢

2 个答案:

答案 0 :(得分:2)

为路线分配名称

Route::get('/contact', function () {
    return view('contact');
})->name('contact');

并在刀片中使用全局功能路由

<li><a href="{{route('contact')}}">Contact</a></li>

答案 1 :(得分:1)

单击

<li><a href="/">Home</a></li>

假设apache中的有效网址为http://localhost/

为了正确重定向,您需要使用命名路由route('name')或使用url()帮助程序

<li><a href="{{ url('/') }}">Home</a></li>

或者如果使用命名路由,那么您首先需要定义一个命名路由

Route::get('/', function () {
    return view('welcome');
})->name('home');

<li><a href="{{ route('home') }}">Home</a></li>

此外,如果要从URL中隐藏公共文件夹,则可以以公共文件夹为服务器根文件夹的方式安装项目。 或者,您可以将index.php和.htaccess从“ / public”文件夹移动到应用程序的根目录。另外,请确保编辑index.php,使其指向正确的autoload.php和app.php

更改此

require __DIR__.'/../vendor/autoload.php';
$app = require_once __DIR__.'/../bootstrap/app.php';

require __DIR__.'/vendor/autoload.php';
$app = require_once __DIR__.'/bootstrap/app.php';

如果您的js和CSS抛出404错误,请在公共场合使用asset()帮助程序

<script src="{{ asset('public') }}/js/main.js">