Laravel:布局中的脚本和图像源在带有前缀的url中不起作用


Laravel: scripts and image source in layout is not working in url with prefix

路线

Route::group(array('before' => 'guest'), function()
{
    // home
    Route::get('/', array('uses' => 'HomeController@home', 'as' => 'home'));
    Route::get('home', array('uses' => 'HomeController@home', 'as' => 'home'));
    Route::get('/user/create', array('uses' => 'UserController@getCreate', 'as' =>'getCreate'));
    Route::get('/user/login', array('uses' => 'UserController@getLogin', 'as' =>'getLogin'));
    Route::group(array('before' => 'csrf'), function()
        {
            Route::post('/user/create', array('uses' => 'UserController@postCreate', 'as' => 'postCreate'));
            Route::post('/user/login', array('uses' => 'UserController@postLogin', 'as' => 'postLogin'));
        });
}); 

我试图在我的master.blade.php文件中添加到脚本文件的链接,如下

<link rel="stylesheet" href="css/bootstrap.min.css">

这将在url:中正常工作

localhost/public

但如果我试图查看我的页面/用户/登录,那么引导脚本就不起作用了。。。但如果我指定链接为

<link rel="stylesheet" href="../css/bootstrap.min.css">

则引导脚本将在/user/login中正常工作但它在没有前缀的链接中不起作用

当您加载这样的样式表时:

<link rel="stylesheet" href="css/bootstrap.min.css">

样式表的链接被附加到浏览器的当前url。因此http://somedomain.com/,即http://somedomain.com/css/bootstrap.min.css-但http://somedomain.com/somefolder/,即http://somedomain.com/somefolder/css/bootstrap.min.css

然而,当你这样做时:

<link rel="stylesheet" href="../css/bootstrap.min.css">

你说的是"往上走一个目录,然后附加链接"。

你想要的可能是:

<link rel="stylesheet" href="/css/bootstrap.min.css">

开头的/表示"转到域的根目录",然后附加样式表链接。

在Laravel中,您必须添加如下所示的CSS和JS。你在用刀片!

{{HTML::style('css/default.min.css')}} <!-- For CSS -->
{{HTML::script('js/scripts.min.js')}} <!-- For JS -->

根据我的示例,请确保css存在于css文件夹中,js存在于js文件夹中。

public/css/default.min.css
public/js/scripts.min.js

这是加载资源的正确方法Laravel

{{ asset('image.jpg') }}
<link rel="stylesheet" type="text/css" href="{{ asset('style.css') }}" />