Laravel 5资产链接

时间:2015-09-21 22:46:54

标签: php laravel

我尝试使用以下项目包含我的css或js文件:

{{ URL::asset('path to css') }}

{!! Html::style("path to css") !!}

或类似。

但我总是从公共目录获得链接。 像这样:http://localhost/projectroot/public/assets/style.css

为什么会发生这种情况,我该如何解决?

似乎我应该将我的资产公开?

3 个答案:

答案 0 :(得分:20)

使用帮助器asset('path/to/css')

e.g。

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

假设您的assets/style.css处于公开状态

答案 1 :(得分:2)

这是完全正常的。您的资产应位于public文件夹中。如果您查看其中的.htaccess文件,您会看到:

# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

这可确保位于/public下的文件直接投放,而不涉及Laravel,而所有其他网址都通过index.php

此外,您的服务器配置应确保只有/public文件夹是URL映射的,因为敏感信息可以通过父路径(例如配置文件)泄露。

答案 2 :(得分:0)

以最简单的形式,资产是指JavaScript,CSS和图像,它们直接位于公共目录下,并且可以使用URL进行公开访问。

Laravel提供了一个辅助功能asset(),可为您的资产生成一个URL。您可以在刀片语法中使用它,例如

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