加载资源失败:服务器响应状态为 404 (Not Found) angular js + ionic

Posted

技术标签:

【中文标题】加载资源失败:服务器响应状态为 404 (Not Found) angular js + ionic【英文标题】:Failed to load resource: the server responded with a status of 404 (Not Found) angular js + ionic 【发布时间】:2014-09-25 23:27:12 【问题描述】:

这是我在 Google Devt Tools 中遇到的错误。有谁知道这个问题?我尝试多次更改,包括 app.js 文件中的文件结构和 stateProvider(没有控制器),但这似乎不是问题。 (脚本包含在 app.js 中,文件名和目录正确)

此外,我的注销和 submitPost 按钮也无法正常工作。

newpost.html

<div class="modal slide-in-up" ng-controller="NavCtrl">
 <!-- Modal header bar -->
   <header class="bar bar-header bar-secondary">
      <button class="button button-clear button-primary" ng-click="close()">Cancel</button>
      <h1 class="title">New Shout</h1>
      <button class="button button-positive" ng-click="submitPost()">Done</button>
   </header>

<!-- Modal content area --> 
   <ion-content class="padding has-header">
       <form class ng-submit="submitPost()" ng-show="signedIn()"> 
            <div class="form-group">
                <input type="text" class="form-control" placeholder="Title" ng-model="post.title">
            </div>
            <div class="form-group">
                <input type="text" class="form-control" placeholder="Link" ng-model="post.url">
            </div>
            <button type="submit" class="btn btn-default">Submit</button>
        </form>
    </ion-content>
</div>

controller.js 文件

app.controller('NavCtrl', function ($scope, $firebase, $location, Post, Auth, $ionicModal) 
    $scope.post = url: 'http://', title: '';

    // Create and load the Modal
    $ionicModal.fromTemplateUrl('newpost.html', function(modal) 
      $scope.taskModal = modal;
    , 
      scope: $scope,
      animation: 'slide-in-up'
    );
    // Open our new task modal
    $scope.submitPost = function () 
      Post.create($scope.post).then(function (postId)    
        $scope.post = url: 'http://', title: '';  
        $location.path('/posts/' + postId);              
        $scope.taskModal.show();  
      );
    ;
    $scope.close = function() 
      $scope.taskModal.hide();
    ;
    $scope.logout = function () 
        Auth.logout();
    ;
);

项目列表页面,post.html

<ion-header-bar class="bar-positive" ng-controller="NavCtrl">
   <button class="button button-clear" ng-click="submitPost()">New</button>
   <h1 class="title"><b><a class="navbar-brand" href="#/posts">MyApp</a></b></h1>
   <button class="button button-clear" ng-click="logout()">Logout</button>
</ion-header-bar>

【问题讨论】:

【参考方案1】:

404 字面意思是找不到文件。 就这么简单。检查 URL 是否正确,并且没有进行重定向(使用提琴手)。也许协议应该是 https:// 而不是 http://?也许您需要在网址中添加“www”?

点击Chrome中给出的url,查看文件是否存在。

【讨论】:

谢谢@Erti-Chris Eelmaa 当我点击错误时,它说Cannot GET /newpost.html。我发现了一个错误 $ionicModal.fromTemplateUrl('newpost.html', function(modal) 应该是 $ionicModal.fromTemplateUrl('templates/newpost.html', function(modal) 但是现在当我运行 grunt serve 时,它永久加载...我无法按 F12 进行故障排除.. 那是因为你处于无限递归中。你的 newpost.html 总是在创建新的 NavCtrl,而 NavCtrl 总是在创建 newpost.html,它会一直持续下去。 @Erti-Chria Eelmaa 有什么建议可以更正代码吗?我认为将 nav.ctrl 放在 html 中只是意味着它使用该控制器。递归是如何发生的? 去掉 ng-controller="NavCtrl" 并将其放在“body”标签或更靠近您不会每次都重新加载控制器的位置。【参考方案2】:

不确定是否有人感兴趣,但是在尝试上传到 Firebase 存储时遇到了类似的问题,这是我解决它的方法。 The Error screenshot where upload fails with 503 and then 400 after 75% progress

我用于上传的代码段是

 //Event: data.Event,
       // Date: data.Date,
      // Time: data.Time
var data = getData();
data.filename=uploadfile.name;
var metadata = 
    customMetadata: 
       data
    


var storageRef = firebase.storage().ref().child("features");

console.log("Filenames to upload :" + uploadfile.name);

var fileRef = storageRef.child(uploadfile.name);

var uploadTask = fileRef.put(uploadfile,metadata);

问题在于自定义元数据,一旦我将其更改为这样,

  var metadata = 
    customMetadata: 
        Event: data.Event,
        Date: data.Date,
        Time: data.Time
    

上传开始工作。因此,如果在设置自定义元数据时出现错误,firebase 错误并可能不会作为原因提供。

在这里工作的屏幕截图 successful upload once the custom meta data is corrected

【讨论】:

【参考方案3】:

&lt;base href="/"&gt; 从 index.html 更改为 &lt;base href="./"&gt;

【讨论】:

以上是关于加载资源失败:服务器响应状态为 404 (Not Found) angular js + ionic的主要内容,如果未能解决你的问题,请参考以下文章

加载资源失败:服务器响应状态为 404(未找到)

错误:加载资源失败:服务器响应状态为 404(未找到)

Apache Cordova:“加载资源失败:服务器响应状态为 404(未找到)”

无法加载资源:服务器响应状态为404 Not Found

加载资源失败:服务器响应状态为 404(未找到)

加载资源失败:服务器使用 Angular 响应状态为 404 (),使用 GitHub Pages 部署