Laravel路由返回公用文件夹


Laravel route returning public folder

我有一个简单的Laravel项目。在我指定的路由中,/返回index.php视图。现在,我想通过在链接中添加更多内容,比如/css/index.css会返回给我localhost/projects/myproject/public/css/index.css,我如何通过/访问/public文件夹,从而获得更多关于图像、css等的信息?

第一种方法

使用此选项可以添加cssjavascriptimages等资产。。在刀片文件中。

对于CSS,

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

<link href="{{ URL::asset('css/app.css') }}" rel="stylesheet" type="text/css" >

对于JS,

<script type="text/javascript" src="{{ asset('js/custom.js') }}"></script>

 <script type="text/javascript" src="{{ URL::asset('js/custom.js') }}"></script>

对于图像,

{{ asset('img/photo.jpg'); }}

这是Laravel Doc

参考:https://stackoverflow.com/a/28214659/2117868


第二种方法

或者,您可以使用此语法添加cssjavascript,方法是添加laravelcollective包并注册服务提供商和别名

然后,

{!! HTML::style('link/to/your/css/file.css') !!}
{!! HTML::script('link/to/your/js/file') !!}

请记住此处{!! HTML::style() !!}将直接指向public目录中的文件。

因此,写入{!! Html::style('style.css') !!}将指向public目录中的style.css文件。

您的路由应该有一个闭包或对Controller函数的调用。例如

Route::get('/', function()
{
     return 'some message'
});

Route::get('/', SomeController@somefunction);

如果要返回视图,我建议使用第二个选项(因为生成没有动态数据的视图显然是对框架的浪费)。所以,如果你这样做,你会有这样的东西:

<?php namespace App'Http'Controllers;
use App'Http'Controllers'Controller;
use Illuminate'Http'Request;
class SomeController extends Controller {
public function somefunction()
{
 //fetch some data if required
  return view('index');//which is a file under resources/views namely index.blade.php
}

现在,在你的index.blade.php中,你可以像在普通HTML页面中那样调用css,但如果你想要它,你应该用一种更大的方式:

{!! HTML::style('link/to/your/css/file.css') !!}
{!! HTML::script('link/to/your/js/file') !!}

但是,如果您使用第二种方法,请确保您应该需要laravelcollective包并注册服务提供商和别名