链接到 laravel + forge 中公用文件夹外的资产

Linking to assets outside publick folder in laravel + forge

我的浏览器找不到 css 文件中定义的图像。作为例子,我使用这个:

background-image: url(../../../resources/assets/img/logo.png); }

它在我的本地(windows 机器,未定义 Web 目录)上找到,但在我的测试服务器上找不到。

我使用laravel 5 + forge + elixer。在 Forge 中,我将我的 Web 目录定义为 "/public" 。

我的文件夹结构如下:

在我看来,我 link 到 css 和 js 文件是这样的。浏览器找到的文件:

<link href="{{ URL::asset('') }}{{elixir('css/all.css') }}" rel="stylesheet" type="text/css" />
<script src="{{ URL::asset('')}}{{ elixir('js/all.js') }}" type="text/javascript"></script>

如何 link 到 css 文件中的资产?或者我应该将它们替换到 public 文件夹中吗?

根据 documentationresources 文件夹不是您想要的:

The resources directory contains your views, raw assets (LESS, SASS, CoffeeScript), and localization files.

此外,Laravel 明确使用 public 文件夹作为文档根目录,因此没有人可以访问此目录之外的 files/assets。您最好在 public 文件夹中创建一个文件夹 images,然后将您的图像放在那里。

我同意@codedge,您应该从public 文件夹访问图像。如果您已经在使用 gulp,您可以将复印作业添加到 gulpfile.js。类似于:

elixir(function(mix) {
        mix.copy('resources/images', 'public/images');
});