javascript - 从 Angular $locationProvider 中的 url 中删除 # 后出现问题

标签 javascript angularjs node.js meteor

在我的 app.js 中我有

 $routeProvider
  .when('/', {
    templateUrl: '/views/main.html'
  })
  .when('/admin', {
    templateUrl: 'views/admin.html',
    controller: 'admin',
  })

所以我的路线是 localhost:3000/#/,点击按钮它会将我带到 localhost:3000/#/admin 我想从我的网址中删除 #,所以我使用了

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

现在 localhost:3000/ 正在工作,单击按钮后,我将进入 localhost:3000/admin

但是如果我直接在url中给出localhost:3000/admin,它会给出Cannot Get/admin..但是如果给出localhost:3000/#/admin,它会将我带到localhost:3000/admin。为什么这种行为我如何使localhost:3000/admin工作。有人可以帮忙吗

最佳答案

  1. 移动此行

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

    app.js 文件中 app.use(app.router); 之前

  2. javascripts/app.js 中添加此行

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

  3. 添加此代码

    app.get('*', function(req, res) { res.render('索引', { 标题:“ express ” }); });

    app.jshttp.createServer(app)

关于javascript - 从 Angular $locationProvider 中的 url 中删除 # 后出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42909840/

相关文章:

通过 innerHTML 进行 DOM 操作的性能测试

javascript - 将父作用域变量作为属性传递给指令

javascript - Angular : Reload $rootscope user before initializing controller

javascript - Google Cloud Print 短肖像页面上的媒体缩放问题

javascript - 如何强制首先调用动态添加的元素 click()

javascript - 将 lodash 注入(inject) Angular 提供程序

javascript - AngularJS:如何从指令添加的元素中删除事件处理程序?

javascript - ERR_SSL_PROTOCOL_ERROR - Socket.io 和 Node.js

node.js - 当服务器处理请求超过 120 秒时,Node Express 服务器连接超时

javascript - 有没有办法将变量从 client.js 文件发送到您的 node.js 文件?