无法从Laravel 5中的PUBLIC文件夹加载AngularJs文件


Can't load AngularJs files from PUBLIC folder in Laravel 5

我在引用Laravel的"公共"文件夹中的angularJS文件时遇到了麻烦。我的公用文件夹结构如下所示:

public
   -css
   -js
      -services
      -controllers
      -app.js

我在"应用程序/视图"文件夹中有我的"索引.php"文件当我转到应用程序 http://localhost 的主页时,浏览器会按预期将我带到索引.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') ?>">

  1. 我试图将 js/app.js移动到文件夹资源或资源/视图。
  2. 我试图只将应用程序移动到资源/视图.js

所有这些选项都找不到"公共"文件夹下的文件。我不使用刀片

我的文件看起来像:

索引.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>

应用.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; 
});
}

我的配置/视图.php看起来像

'paths' => [
    realpath(base_path('resources/views')),
],

有关我的代码的更多信息,请查看此处 AngularJS 不会在 Laravel5 中显示(解析)随 $http.get 一起提供的数据

控制台中的错误:

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>

请帮忙,我真的没有看到问题,无法在任何地方谷歌它。

谢谢

将文件保留在public/js并像以下方式检索:

<script src="<?= url('js/app.js') ?>">

你提到做<script src="{{ asset('/js/app.js') }}">,但它应该包含js/app.js而不是/js/app.js,如果你不使用刀片,显然用 php 标签替换{{ }}

如果不使用刀片

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

它不起作用,因为"{{"是刀片的功能,所以你可以做的是:

  <script src="<?php echo asset('/js/app.js'); ?>">