我在引用 Laravel 的“public”文件夹中的 angularJS 文件时遇到问题。我的公用文件夹结构如下所示::
public
-css
-js
-services
-controllers
-app.js
我的“index.php”文件位于“app/views”文件夹中。当我转到应用程序的主页时 http://localhost ,浏览器按预期将我带到了 index.php 文件。
在我的“index.php”文件中,我想引用“public/js”下的javascript文件,并且在浏览器控制台中得到“GET http://localhost/js/app.js 404(未找到)”,这意味着找不到这些文件。这些是我尝试将它们包含在“index.php”文件中的一些选项:
1. <script src="js/app.js"></script>
和
编辑:
<script src="<?php echo asset('/js/app.js'); ?>">
<script src="<?= url('js/app.js') ?>">
和
- 我尝试将 js/app.js 移至文件夹 resources 或 resources/views 。
- 我尝试仅将 app.js 移至资源/ View
所有这些选项都找不到“public”文件夹下的文件。 我不使用 BLADE
我的文件看起来像:
index.php
<!DOCTYPE html>
<html lang=eng>
<head>
<meta charset="UTF-8">
<title>Welcome </title>
<!-- CSS -->
<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.0/css/bootstrap.min.css"> <!-- load bootstrap via cdn -->
<link rel="stylesheet" href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.min.css"> <!-- load fontawesome -->
<style>
body { padding-top:30px; }
/* form { padding-bottom:20px; }
*/ </style>
<!-- JS -->
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>
<script src="js/app.js">
</script> <!-- load our application --><!-- load our application -->
</head>
<body class="container" ng-app="user1App" ng-controller="mainController">
<div class="user1" ng-repeat="user1 in user1s">
<h3> <small>{{ user1.name }} , {{ user1.email }}</small></h3>
<p>{{ user1.phone_number }}</p>
</div>
</body>
</html>
app.js
angular.module('user1App', [
]);
angular.module('user1App').controller('mainController', function($scope, $http, User1, $sce) {
$http.get('api/v1/jokes').success(function(data) {
$scope.user1s = data;
});
}
我的 config/view.php 看起来像:
'paths' => [
realpath(base_path('resources/views')),
],
有关我的代码的更多信息,请查看此处 AngularJS won't display (parse) data that is delivered with $http.get in Laravel5
控制台中出现错误:
GET http://localhost/js/app.js 404 (Not Found)
.htaccess
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>
请帮忙,我真的没有看到问题,也无法在任何地方 google 到它。
谢谢
最佳答案
将您的文件留在 public/js
并像这样检索它:
<script src="<?= url('js/app.js') ?>">
你提到做<script src="{{ asset('/js/app.js') }}">
,但它应该包含 js/app.js
而不是/js/app.js
显然替换 {{ }}
如果您不使用 Blade,请使用 php 标签。
关于javascript - 无法从 Laravel 5 中的 PUBLIC 文件夹加载 AngularJs 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38291595/