2017-01-20 11 views
1

プロジェクトのangularApp.jsでは、templateUrlで状態を定義します。テンプレートURLをHTMLファイルに設定する

app.config(['$stateProvider', function ($stateProvider) { 
    $stateProvider 
     .state('editor', { 
      url: ..., 
      templateUrl: '/editor.html', 
      controller: ... 
     }) 

コンソールはeditor.htmlの場所されていない、http://localhost:3000/editor.html[Error] Failed to load resource: the server responded with a status of 404 (Not Found) (editor.html, line 0)示す:まず、私は、次の試み。

そして、私は、コンソールがhttp://localhost:3000/Start/PRODSERVER/funfun/views/editor.htmlで同じエラーを示す

`templateUrl: '../../../../../Start/PRODSERVER/funfun/views/editor.html'`, 

相対パスを試みました。ただし、ブラウザにを開いても、正しいファイルが開かれます。

誰もこれを解決する方法を知っていますか?

PS:angularApp.jsは、public/javascripts/のフォルダにあります。ホームページindex.ejsは、views/というフォルダにあります。私もeditor.htmlviews/というフォルダに入れました。 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 mongoose = require('mongoose'); 
var passport = require('passport'); 
require('./models/Posts'); 
require('./models/Comments'); 
require('./models/Users'); 
require('./config/passport'); 
mongoose.connect('mongodb://localhost/news'); 

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

var app = express(); 

// view engine setup 
app.set('views', path.join(__dirname, 'views')); 
app.set('view engine', 'ejs'); 

// uncomment after placing your favicon in /public 
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico'))); 
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(passport.initialize()); 

app.use('/', index); 
app.use('/users', users); 

// catch 404 and forward to error handler 
app.use(function(req, res, next) { 
    var err = new Error('Not Found'); 
    err.status = 404; 
    next(err); 
}); 

// error handler 
app.use(function(err, req, res, next) { 
    // set locals, only providing error in development 
    res.locals.message = err.message; 
    res.locals.error = req.app.get('env') === 'development' ? err : {}; 

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

module.exports = app; 
+0

あなたの 'index.html'がどこにあってもパスは相対的でなければならないと思います。ここでは 'http:// localhost/Start/PRODSERVER/funfun /'と仮定します。したがって、 'templateUrl: 'views/editor.html'' – Ankh

+0

を試してみてください。それはCORSの制限でしょうか? –

+0

ポートなしでは、プロジェクトに直接行くことに注意してください。ポートでは、何とかそれを提供しています。 – Amit

答えて

1

あなたのHTMLファイルは、静的なファイルであるので、それはあなたがexpress.static機能を使用して定義された静的フォルダから提供されます。

app.use(express.static(path.join(__dirname, 'public'))); 

アクセス可能にするために、テンプレートHTMLをパブリックフォルダ内に配置します。

+0

これはまだ動作しません。 ''リソースを読み込めませんでした:http:// localhost:3000/Start/PRODSERVER/funfun/public/htmls/editorでサーバが404(Not Found) http:// localhost/Start/PRODSERVER/funfun/public/htmls/editor.html'はファイルを読み込みます... –

+1

すべてのフォルダを削除し、パブリックフォルダに置き、 '/ editor.html'を参照してください。 –

+0

それは動作します...ありがとう... –

関連する問題