引用Laravel 4公共文件夹中的文件


Referencing files in Laravel 4 public folder

我是laravel的新手,在laravel的"public"文件夹中引用我的angularJS文件有困难。我的公用文件夹结构如下所示::

public
   -angular
      -js

我在js文件夹内也有其他文件夹。我有我的index.php文件在app/views文件夹。当我转到我的应用程序http://learninglaravel.dev的主页时,浏览器像预期的那样将我带到index.php文件。

在我的"index.php"文件中,我想在"public/angular"文件夹下引用我的javascript文件,但我在浏览器控制台上得到"NetworkError: 404 Not Found" -这意味着找不到这些文件。以下是我尝试将它们包含在"index.php"文件中的一些选项:

<script src="../../public/angular/js/angular.js"></script>
<script src="../../public/angular/js/controllers/mainCtrl.js"></script> 
or
<script src="angular/js/angular.js"></script>
<script src="angular/js/controllers/mainCtrl.js"></script>
or
<script src="./angular/js/angular.js"></script>
<script src="./angular/js/controllers/mainCtrl.js"></script>

所有这些选项都无法找到"public"文件夹下的文件。

我不使用刀片模板

只是为了扩展Eduardo给出的答案,asset URL帮助器是您所需要的。

本质上它生成一个动态的URL到你的公共文件夹,然后你可以使用任何额外的脚本,CSS或杂项的东西,你希望包括。

在本例中,给定文件结构,您希望使用如下内容:

<script src="{{ asset('angular/js/angular.js') }}"></script>
<script src="{{ asset('angular/js/controllers/mainCtrl.js') }}"></script>

只要你使用刀片模板引擎(即index.blade.php),那么这将在你的页面上输出到:

<script src="http://yourwebsite.com/angular/js/angular.js"></script>
<script src="http://yourwebsite.com/angular/js/controllers/mainCtrl.js') }}"></script>

您的Laravel应用程序将能够将其解析为所需的脚本。

更多信息请查看文档

刚刚看到你的评论说你没有用刀片。

这不会很难转移你有刀片,只是复制到一个新的文件,并保存为.blade.php和更新你的控制器引用。

否则,给定它生成的URL,你应该能够手动把这些放在一起,你可以简单地通过导航到那个URL来测试它们,看看你得到什么。

我强烈建议使用blade,它将使使用Laravel变得更容易,因为它有所有的帮助器和你可以使用的语法。

你应该试试这个(假设你的文件名是js.js):

<script src="{{ asset('angular/js.js') }}"></script>

你在用刀片吗?