Laravel 5资产链接

Web*_*san 6 php laravel

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

{{ URL::asset('path to css') }}
Run Code Online (Sandbox Code Playgroud)

要么

{!! Html::style("path to css") !!}
Run Code Online (Sandbox Code Playgroud)

或类似的.

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

为什么会这样,我该如何解决?

似乎我应该将我的资产转移到公众面前?

小智 23

使用助手 asset('path/to/css')

例如

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

假设你assets/style.css的公开


小智 12

在最简单的形式中,资产意味着 JavaScript、CSS 和图像,它们直接位于public 目录下并且可以使用 URL 公开访问。

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

<script type="text/javascript" src="{ { asset('js/jquery.js') } }"></script>
Run Code Online (Sandbox Code Playgroud)


ber*_*nie 5

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

# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
Run Code Online (Sandbox Code Playgroud)

这可确保/public直接提供位于 下的文件,而无需涉及 Laravel,而所有其他 url 均通过index.php.

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