实际上我是 Laravel 社区的新人,我终于完成了我的网站:)
但我现在面临的是网站加载缓慢。我已经最小化了图片的尺寸。有人告诉我,在缩小所有 css 文件后将 css 文件放入一个文件中是一种好方法,以便浏览器轻松获取它们。因此,我创建了一种动态方式来获取所有必需的 css 文件并将它们合并到每个页面的一个文件中,我的解决方案是:
我的布局/master.blade.php:
<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
<link rel="stylesheet" href="{{route('css.main',['route_name'=>Route::currentRouteName()])}}">
</head>
<body>
<h1>This is a Heading</h1>
<p>This is a paragraph.</p>
@yield('content')
</body>
</html>
我的 home.blade.php 页面:
@extends('layouts.master')
@section('content')
<div class="container">
<div class="row">
<div class="col-md-10 col-md-offset-1">
<div class="panel panel-default">
<div class="panel-heading">Welcome</div>
<div class="panel-body">
My Applications Landing Page.
</div>
</div>
</div>
</div>
</div>
@endsection
我的 Routes.php 页面
Route::any('/page1', "homeController@foo1")->name('page1');
Route::any('/page2', "homeController@foo2")->name('page2');
Route::get('/css/{route_name}/main.css', "cssController@main")->name('css.main');
我的CSS控制器:
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use File;
class cssController extends Controller
{
public function main($route_name){
header('Content-Type: text/css');
$requirements =[
'page1'=>[
'styel1.css',
'styel2.css',
],
'page2'=>[
'styel3.css',
'styel4.css',
],
];
$css = [];
// include bootstrap
$css[] = '@import url("http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css");';
$css[] = '@import url("//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css");';
foreach($requirements[$route_name] AS $css_file){
$css[] = File::get(storage_path('app/public/css/'.$css_file));
}
return implode(' ',$css);
}
}
如果我不正确,请指导我:)