快速模式配置,加载部分问题

时间:2014-01-17 13:21:19

标签: node.js angularjs express

服务器在“开发”模式下查找视图,但在“生产”模式下查找视图。而不是真实的视图,它向我展示了404视图。

例如,使用此路由“/ login”:

  • 可行:使用开发代码(CASE 1),GET views / login.html提供真实的登录内容
  • 不起作用:使用生产代码(案例2),GET views / login.html提供我的404视图的内容

为了在开发模式下测试两种配置,我只需手动开关代码。以下是我的一些Express配置:

    // Express Configuration
app.configure('development', function(){
      // CASE 2: PRODUCTION CONFIG TO TEST 
  app.use(express.favicon(path.join(__dirname, 'public', 'favicon.ico')));
  app.use(express.static(path.join(__dirname, 'public')));
  app.set('views', __dirname + '/views');

  /* CASE 1: REAL DEVELOPMENT CONFIG
      app.use(require('connect-livereload')());
  app.use(express.static(path.join(__dirname, '.tmp')));
  app.use(express.static(path.join(__dirname, 'app')));
  app.use(express.errorHandler());
  app.set('views', __dirname + '/app/views');
      */
});

app.configure('production', function(){
  app.use(express.favicon(path.join(__dirname, 'public', 'favicon.ico')));
  app.use(express.static(path.join(__dirname, 'public')));
  app.set('views', __dirname + '/views');
});

app.configure(function(){
  app.engine('html', require('ejs').renderFile);
  app.set('view engine', 'html');
    app.use(express.logger('dev'));
    app.use(express.bodyParser());
    app.use(express.methodOverride());

  // Router needs to be last
    app.use(app.router);
});

// Controllers
var api = require('./lib/controllers/api'),
    controllers = require('./lib/controllers');

// Angular Routes
app.get('/views/*', controllers.partials);
app.get('/*', controllers.index);

以下是开发模式中使用的架构:

- >应用

---->脚本

---->视图

------> login.html的

------> 404.html

以下是prod模式下的架构和使用的文件夹(在“grunt build”之后):

- >公共

- >视图

---> login.html的

---> 404.html

0 个答案:

没有答案