ave*_*808 102 php frameworks laravel
我刚开始学习Laravel,可以完成控制器和路由的基础知识.
我的操作系统是Mac OS X Lion,它位于MAMP服务器上.
来自routes.php的代码:
Route::get('/', function() {
return View::make('home.index');
});
Route::get('businesses', function() {
return View::make('businesses.index');
});
Route::get('testing', function() {
return View::make('testing.index');
});
Route::get('hello', function() {
return "<h3>Hello world!</H3>";
});
Run Code Online (Sandbox Code Playgroud)
这有效,视图显示完美,''然而''我想要尝试和做的是在视图中包含CSS,我尝试添加到目录中的样式表的链接,但页面显示为默认浏览器字体甚至虽然CSS在HTML中!
这是来自views文件夹中的企业的index.php:
<head>
<link rel="stylesheet" type="text/css" href="mystyle.css">
</head>
<p>Business is a varied term. My content here.
Run Code Online (Sandbox Code Playgroud)
我尝试在我的其他视图文件夹(测试)中使用Blade模板引擎来显示CSS但是尽管它在测试文件夹中,CSS仍未显示!
我怎样才能克服这个问题,并且变得更好 - 因为我正在慢慢地学习这个框架.
Fer*_*oya 154
将您的资源放在公用文件夹中
public/css
public/images
public/fonts
public/js
Run Code Online (Sandbox Code Playgroud)
他们用Laravel称呼它
{{ HTML::script('js/scrollTo.js'); }}
{{ HTML::style('css/css.css'); }}
Run Code Online (Sandbox Code Playgroud)
Lea*_*per 55
将您的资源放在公用文件夹中
public/css
public/images
public/fonts
public/js
Run Code Online (Sandbox Code Playgroud)
然后使用Laravel调用它
{{ URL::asset('js/scrollTo.js'); }} // Generates the path to public directory public/js/scrollTo.js
{{ URL::asset('css/css.css'); }} // Generates the path to public directory public/css/css.css
Run Code Online (Sandbox Code Playgroud)
(要么)
{{ HTML::script('js/scrollTo.js'); }} // Generates the path to public directory public/js/scrollTo.js
{{ HTML::style('css/css.css'); }} // Generates the path to public directory public/css/css.css
Run Code Online (Sandbox Code Playgroud)
And*_*ler 42
您的css文件属于公用文件夹或其子文件夹.
如果你把你的CSS放进去的话
public/css/common.css
Run Code Online (Sandbox Code Playgroud)
你会用的
HTML::style('css/common.css');
Run Code Online (Sandbox Code Playgroud)
在您的刀片视图中...
或者您也可以使用Asset类http://laravel.com/docs/views/assets ...
小智 24
您也可以按照正常的方式编写一个简单的链接标记,然后在href attr上使用:
<link rel="stylesheet" href="<?php echo asset('css/common.css')?>" type="text/css">
Run Code Online (Sandbox Code Playgroud)
当然你需要把你的CSS文件放在public/css下
Ahm*_*rif 23
我们可以通过以下方式做到这一点.
<link href="{{ asset('/css/style.css') }}" rel="stylesheet">
{{ HTML::style('css/style.css', array('media' => 'print')) }}
Run Code Online (Sandbox Code Playgroud)
它将搜索Laravel的公共文件夹中的样式文件,然后将呈现它.
Sam*_*dey 13
就像Ahmad Sharif提到的那样,你可以链接样式表 http
<link href="{{ asset('/css/style.css') }}" rel="stylesheet">
Run Code Online (Sandbox Code Playgroud)
但如果你使用的是https
那么请求将被阻塞,混合内容错误会来,用它通过https使用secure_asset
像
<link href="{{ secure_asset('/css/style.css') }}" rel="stylesheet">
Run Code Online (Sandbox Code Playgroud)
https://laravel.com/docs/5.1/helpers#method-secure-asset
Bon*_*ono 10
从Laravel 5开始HTML
,默认情况下不再包含该类.
如果您正在使用表单或HTML帮助程序,您将看到一个错误,指出未找到类"表单"或未找到类"Html".Laravel 5.0中不推荐使用Form和HTML帮助程序; 然而,有一些社区驱动的替代品,例如由Laravel Collective维护的替代品.
您可以使用以下行来包含CSS或JS文件:
<link href="{{ URL::asset('css/base.css') }}" rel="stylesheet">
<link href="{{ URL::asset('js/project.js') }}" rel="script">
Run Code Online (Sandbox Code Playgroud)
laravel 5.4的更新----
所有答案都已经使用了HTML类进行了laravel但是我猜它现在已经在laravel 5.4中被折旧了,所以把你的css和js文件放在public-> css/js中并在你的html中引用它们
<link href="css/css.common.css" rel="stylesheet" >
Run Code Online (Sandbox Code Playgroud)
小智 6
在我看来,路由到 css 和 js 的最佳选择使用以下代码:
<link rel="stylesheet" type="text/css" href="{{ URL::to('route/to/css') }}">
Run Code Online (Sandbox Code Playgroud)
因此,如果您在 public 文件夹中的 css 文件夹中有名为 main.css 的 css 文件,它应该是以下内容:
<link rel="stylesheet" type="text/css" href="{{ URL::to('css/main.css') }}">
Run Code Online (Sandbox Code Playgroud)
您可以简单地将所有文件放在其指定的文件夹中,例如
公共/css
公共/js
公共/图像
然后就像在普通 html 中一样调用文件
<link href="css/file.css" rel="stylesheet" type="text/css">
它适用于任何版本的 Laravel
这是不可能的兄弟,Laravel假设一切都在公共文件夹中.
所以我的建议是:
要么
如果你真的坚持将css放在views文件夹中,你可以尝试创建Symlink(你的mac是可以的,但是对于windows,这只适用于Vista,Server 2008或更高版本)从你的css文件夹目录到公众文件夹,您可以{{HTML::style('your_view_folder/myStyle.css')}}
在视图文件中使用,这里是一个代码,为了您的方便,在您发布的代码中,将这些放在return View::make()
:
$css_file = 'myStyle.css';
$folder_name = 'your_view_folder';
$view_path = app_path() . '/views/' . $folder_name . '/' . $css_file;
$public_css_path = public_path() . '/' . $folder_name;
if(file_exists($public_css_path)) exec('rm -rf ' . $public_css_path);
exec('mkdir ' . $public_css_path);
exec('ln -s ' . $view_path .' ' . $public_css_path . '/' . $css_file);
Run Code Online (Sandbox Code Playgroud)
如果你真的想尝试做你的想法,试试这个:
<link rel="stylesheet" href="<?php echo app_path() . 'views/your_view_folder/myStyle.css'?>" type="text/css">
Run Code Online (Sandbox Code Playgroud)
但即使文件目录正确也无法工作,因为Laravel不会出于安全目的而这样做,Laravel非常爱你.