2017-03-18 58 views
1

我想在我的網站中創建動態網址。我在ngRoute前端使用Angular。我想這basicaly網址:ngRoute動態網址作爲路徑的第一部分

mysite.com/home

mysite.com/about

mysite.com/(station's名)/ - 這是我創建

每個站頁面

但是當我像存取權限whateverUrl站頁面,我得到的錯誤:

不能得到/ whateverUrl/

我試着創建了一個像/station/whateverURL的路線,並且工作!但我希望URL儘可能短。

我下面的代碼:這裏

angular.module("app").config(['$routeProvider', '$locationProvider', function ($routeProvider, $locationProvider) { 
    var apiVersion = "/api/v2/"; 

    $routeProvider.when("/", { 
     templateUrl: "/static/app/view/home.html", 
     controller: "HomeController", 
     resolve: { 
      userData: function(commonService) { 
       return commonService.get(apiVersion + "users/"); 
      } 
     } 
    }).when("/home/", { 
     templateUrl: "/static/app/view/home.html", 
     controller: "HomeController", 
     resolve: { 
      userData: function(commonService) { 
       return commonService.get(apiVersion + "users/"); 
      } 
     } 
    }).when("/about/", { 
     templateUrl: "/static/app/view/about.html" 
    }).when("/:stationId/", { 
     templateUrl: "/static/app/view/station.html", 
     controller: "StationController", 
     resolve: { 
      stationData: function(commonService, $route) { 
       return commonService.get(apiVersion + "stations/" + $route.current.params.stationId + "/"); 
     } 
    }); 

    $locationProvider.html5Mode({ 
     enabled: true, 
     requireBase: false 
    }); 
}]); 

回答

0

問題是不相關的前端,但後端。

服務器發送文件並由瀏覽器處理後,Angular會立即啓動,但現在當您請求/whateverUrl/處的資源時,服務器不知道如何處理它並以404和標準404消息。

從您發佈的錯誤:

Cannot GET /whateverUrl/ 

我想我可以假設你有在後端節點/ Express服務器。

你只需要添加一箇中間件,它將index.html提供給所有你的url。

var express = require('express'); 
var app = express(); 

app 
    .route('/*') 
    .get(function (req, res) { 
     res.sendFile("index.html") 
    }); 

基於下面的意見,後端服務器是基於Django和國際海事組織需要一些修正。我並未刪除答案,但顯然我發佈的內容並未解決問題。

+0

我使用django,後端是正確的。一切正常,當我運行本地 – 07carvalho

+0

好吧,檢查是否有後端問題的最好方法是通過檢查源打開'view-source:mysite.com/whateverUrl /',如果你看到「無法GET/whateverUrl /」那麼它是你的後端,否則,如果你看到一些HTML,那麼它的角度 –

+0

和btw你在哪裏看到這個錯誤? –

相關問題