【问题标题】:Angularjs, express and nodejs bug with view rendering带有视图渲染的 Angularjs、express 和 nodejs 错误
【发布时间】:2018-05-23 23:07:40
【问题描述】:

我是 Angularjs 的新手,我正在尝试使用 ngRoute 创建一个基本的单页应用程序。但我有一个问题。我不希望我的用户每次都获取 index.html 文件。但是如果 url 是 /page1 我的服务器正在返回 page1 所以 index.html 没有加载。我试图通过这样做来修复它:

角度文件:

 test.config(function($routeProvider, $locationProvider) {
      $routeProvider
        .when('/', {
            templateUrl : '/page1',
            controller  : 'trapController'
        })
        .when('/test', {
            templateUrl : '/page2',
            controller  : 'trapController'
        });
      $locationProvider.html5Mode(true);
    });

Node.js 文件:

require('dotenv').load();
const express    = require('express');
const app        = express();
const port = process.env.PORT || 8080;
const bodyParser = require('body-parser');
const path = require('path');
const apirouter = require('./apirouter');
const viewrouter = require('./viewrouter');

app.use('/api', apirouter);
app.use(bodyParser.urlencoded({
  extended: true
}));
app.use(bodyParser.json());
app.use(express.static(__dirname + '/public'));
app.engine('html', require('ejs').renderFile);

app.use('/*', function(req, res){
  res.sendFile(__dirname + '/public/index.html');
});


// START THE SERVER
// =============================================================================
app.listen(port, () => {
  console.log('Server running on port ' + port);
});

但是这种方式没有任何工作..似乎每个呼叫都在询问服务器而不是查看公用文件夹。因此,当我调用 .js 文件时,它会为我加载一个新的 index.html 文件……我不知道该怎么做……你能帮帮我吗? :)

【问题讨论】:

    标签: node.js angular express routing public


    【解决方案1】:

    我显然做错了:

    最好用这个:

    app.use('/', express.static(__dirname + '/public'));
    

    比这个:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-01
      • 2023-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-18
      • 2020-09-29
      相关资源
      最近更新 更多