在Laravel视图中使用CSS?
在Laravel视图中使用CSS?
我刚刚开始学习Laravel,已经能够完成控制器和路由的基本操作。\n我的操作系统是Mac OS X Lion,使用的是MAMP服务器。\n我的routes.php代码如下:\n
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 "Hello world!
"; });
\n这个代码可以正常工作,视图能够完美显示,但是我想尝试在视图中包含CSS样式,我尝试在目录中添加一个样式表的链接,但是页面显示的是默认的浏览器字体,即使CSS已经包含在HTML中!\n这是views文件夹中businesses文件夹中的index.php内容:\n
业务是一个广义的术语。这里是我的内容。
\n我尝试在其他views文件夹(testing)中使用Blade模板引擎来显示CSS,但是CSS仍然没有显示,尽管它在testing文件夹中!\n我该如何解决这个问题,并且提高自己的能力 - 因为我正在慢慢学习这个框架。
问题:在Laravel视图中使用CSS的原因以及解决方法
在Laravel中,将CSS文件放置在public文件夹或其子文件夹中是最常见的做法。例如,如果将CSS文件放置在public/css/common.css中,可以在blade视图中使用HTML::style('css/common.css')来引用它。
然而,有时候在浏览器中无法访问包含在这些目录中的文件,这可能是由于一些原因导致的。如果收到的404错误是由Laravel生成的(即不是由服务器默认生成的),那么可能是因为.htaccess文件中缺少以下一行代码:"RewriteCond %{REQUEST_FILENAME} !-f"。这行代码应该放在包含index.php的那一行之前,它可以防止Laravel的路由系统处理文件系统中存在的路径。如果收到的404错误不是由Laravel生成的,则需要在Apache配置中添加"AllowOverride All"以便处理.htaccess文件(有关更多信息,请参考Apache文档)。
然而,有一位用户表示他希望将CSS文件放在视图文件夹而不是public文件夹中,因为Laravel出于安全目的不允许外部访问App文件夹中的任何内容。所以,无论是否存在index.php,对他的要求来说都没有关系。
为了在Laravel视图中使用CSS,通常最好将CSS文件放在public文件夹或其子文件夹中,并使用HTML::style()来引用它们。如果在浏览器中无法访问这些文件,可能是由于.htaccess文件中缺少一行代码或Apache配置问题导致的。但如果希望将CSS文件放在视图文件夹中,则需要考虑安全性问题。
问题出现的原因是在Laravel视图中使用CSS时遇到了一些问题,解决方法是将CSS文件放置在public文件夹下,并使用Laravel提供的语法来访问它们。具体解决方法如下:
1. 将CSS文件放置在public文件夹下,可以创建以下文件夹:public/css、public/images、public/fonts、public/js。
2. 在Laravel视图中使用以下语法来访问CSS文件:
{{ HTML::script('js/scrollTo.js'); }} {{ HTML::style('css/css.css'); }}
或者使用以下语法:
{{ URL::asset('js/scrollTo.js'); }} {{ URL::asset('css/css.css'); }}
这些语法将自动生成正确的路径,例如`public/js/scrollTo.js`。
3. 确保文件存在,检查文件路径是否正确。
4. 如果出现`.htaccess`问题,需要解决该问题。
5. 如果使用了Blade模板引擎,不要在`