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

时间:2016-07-10 11:56:14

标签: javascript php angularjs laravel

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

public

   -css

   -js

      -services

      -controllers

      -app.js

我有我的" index.php"文件内的" app / views"文件夹当我转到我的应用程序http://localhost的主页时,浏览器会按预期将我带到index.php文件。

在我的" index.php"文件,我想引用我的javascript文件" public / js"我得到了#34; 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. 我试图将app.js移动到资源/视图
  3. 所有这些选项都找不到&#34; public&#34;夹。 我不使用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; 
    
    });
    }
    

    我的配置/ 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>
    

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

    由于

2 个答案:

答案 0 :(得分:0)

将文件保留在public/js并将其检索为:

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

您提到了<script src="{{ asset('/js/app.js') }}">,但它应该包含js/app.js而不是/js/app.js,如果您不使用刀片,则显然会将{{ }}替换为php标记。

答案 1 :(得分:0)

如果您不使用刀片

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

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

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