我有一个简单的Laravel项目。在我指定的路由中,/
返回index.php
视图。现在,我想通过在链接中添加更多内容,比如/css/index.css
会返回给我localhost/projects/myproject/public/css/index.css
,我如何通过/
访问/public
文件夹,从而获得更多关于图像、css等的信息?
第一种方法
使用此选项可以添加css
、javascript
、images
等资产。。在刀片文件中。
对于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
第二种方法
或者,您可以使用此语法添加css
和javascript
,方法是添加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包并注册服务提供商和别名