是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”文件夹下的文件。
我没有使用Blade模板。
答案 0 :(得分:1)
你应该试试这个(假设你的文件名是js.js):
<script src="{{ asset('angular/js.js') }}"></script>
你在使用刀片吗?
答案 1 :(得分:1)
为了扩展Eduardo给出的答案,asset
网址助手就是你所追求的。
基本上它会为您的公用文件夹生成一个动态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就可以测试它们。看看你得到了什么。
我强烈建议使用刀片,它会让Laravel的生活变得更容易,因为它拥有所有帮助器和你可以使用的语法。