我尝试使用以下项目包含我的css或js文件:
{{ URL::asset('path to css') }}
或
{!! Html::style("path to css") !!}
或类似。
但我总是从公共目录获得链接。 像这样:http://localhost/projectroot/public/assets/style.css
为什么会发生这种情况,我该如何解决?
似乎我应该将我的资产公开?
答案 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>