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

标签 javascript php angularjs laravel

我在引用 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') ?>">

  1. 我尝试将 js/app.js 移至文件夹 resources 或 resources/views 。
  2. 我尝试仅将 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/

相关文章:

javascript - Angular 服务是否可以直接更改注入(inject)它的组件的属性(没有商店/RxJs)?

php - 糟糕的 Laravel 升级错误

javascript - Angular 1.6 页面上同一组件的多个实例

javascript - CausesValidation 检查所有验证器...甚至验证组?

c# - 需要使用 jQuery getJSON 的工作示例

javascript - *ngfor Angular 2 中的字符串连接

php - MySQL 根据间隔连接多行

php - 如何在 PHP 中将数字格式化为美元金额

javascript - Angularjs 在指令中创建@keyframes 动画 CSS

javascript - Node js 如何使用 "node_modules"库而不是 "src =<cdn>"