簡體   English   中英

無法從Laravel 5中的PUBLIC文件夾加載AngularJs文件

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

我在Laravel的“public”文件夾中引用了我的angularJS文件時遇到了麻煩。 我的公用文件夾結構如下所示

public

   -css

   -js

      -services

      -controllers

      -app.js

我在“app / views”文件夾中有“index.php”文件 當我轉到我的應用程序http:// localhost的主頁時,瀏覽器會按預期將我帶到index.php文件。

在我的“index.php”文件中,我想在“public / js”下引用我的javascript文件,並在瀏覽器控制台中獲得“GET http://localhost/js/app.js 404(Not Found)”意味着無法找到這些文件。 這些是我試圖將它們包含在“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移動到資源/視圖

所有這些選項都找不到“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將不會顯示(解析)與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'); ?>">

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM