2017-08-25 3 views
0

は私が#を除去するためのは、ページのエラーが

$locationProvider.html5Mode(true); を使用した角度のアプリケーションを持っていない提供します! 、それは良い動作します。私はページを更新するとき、それは ゲット/ C /電子/コンピュータ/ラップトップは私のURL

であるが見つからないというエラーになりますこれはこれは私のインデックスページである私のapp.jsページ

var express = require('express'); 
var path = require('path'); 
var favicon = require('serve-favicon'); 
var logger = require('morgan'); 
var cookieParser = require('cookie-parser'); 
var bodyParser = require('body-parser'); 

var index = require('./routes/index'); 

var app = express(); 

app.use(function(req,res,next){ 

    res.setHeader('Access-Control-Allow-Origin', '*'); 


    res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE'); 


    res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type'); 

    res.setHeader('Access-Control-Allow-Credentials', true); 
    next(); 
}); 



app.use(logger('dev')); 
app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({ extended: false })); 
app.use(cookieParser()); 
app.use(express.static(path.join(__dirname, 'public'))); 

app.use('/', index); 

app.use(function(req, res, next) { 
    var err = new Error('Not Found'); 
    err.status = 404; 
    next(err); 
}); 


app.use(function(err, req, res, next) { 

    res.locals.message = err.message; 
    res.locals.error = req.app.get('env') === 'development' ? err : {}; 


    res.status(err.status || 500); 
    res.render('error'); 
}); 

module.exports = app; 

です私はモデルで、私はMongoDBのクエリ

var express   = require('express'); 
var router   = express.Router(); 
const mongoose  = require('mongoose'); 
const bodyParser = require('body-parser'); 
Category   = require('./models/category'); 
Product    = require('./models/product'); 
http    = require('http'); 

mongoose.connect('mongodb://localhost/baazaronline'); 
var db = mongoose.connection; 

router.get('/api/category', function(req, res){ 
    Category.getCategory(function(err, category){ 
     if(err){ 
      throw err; 
     } 
     res.json(category); 
    }); 
}); 

router.get('/api/product', function(req, res){ 
    Product.getProduct(function(err, product) { 
     if(err){ 
      throw err 
     } 
     res.json(product); 
    }) 
}); 



router.get('/api/product/:_id', function(req, res){ 

    Product.getProductById(req.params._id, function(err, product){ 
     if(err){ 
      throw err; 
     } 
     res.json(product); 
    }); 
}); 
+1

これはdocsに関連していると思う - https://docs.angularjs.org/guide/$location#server-side – KieranDotCo

答えて

0

Kasun、あなたのサブルートの1つからページを更新しようとしているため発生している、これがあることを理由にあったクエリを発射するためにすべての私の機能とAPIをパット(持っていますui-routerとは関係ありません)。

www.yourdomain.com/をリクエストした場合、角度設定アプリをブートストラップするindex.htmlを返すようにサーバーを設定している可能性があります。アプリが読み込まれると、それ以上のURLの変更はhtml5Modeになり、ui-router経由でページを更新します。

あなたのページをリロードすると、角度アプリはまだロードされていないので無効になるので、サブルート(たとえば、www.yourdomain.com/someotherpage)をロードしようとすると、サーバーは対処方法を知らない/someotherpageとなり、404などのエラーが返される可能性があります。

すべてのルートの角度アプリを返すようにサーバーを設定する必要があります。私は主に、ノード/ Expressを使用するので、私のような何かを実行します。

app.get('*', function(req, res, next) { 
    // call all routes and return the index.html file here 
} 

注:私は通常、すべての最後のキャッチとして、このようなものを使用し、しかし、私はまた、静的ファイルを要求するようなもののためにそれ以上の他の経路が含まれるが、 Webクローラー、および処理する必要があるその他の特定のルートが含まれます。

+0

私はそれをどこに置くべきかわかりません。私はあなたに私のコードを示します。あなたはそれを見て、私に知らせてください –

+0

私は上記のコードを更新しています。それを見て、私に解決策を与えてください。 –

関連する問題