Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 删除角URL中的#_Angularjs_Node.js_Apache_.htaccess_Apache2 - Fatal编程技术网

Angularjs 删除角URL中的#

Angularjs 删除角URL中的#,angularjs,node.js,apache,.htaccess,apache2,Angularjs,Node.js,Apache,.htaccess,Apache2,我有一个AngularJS(1.4.5)网站,它位于apache2服务器上,有一个小的NodeJS实例,用于与后端通信并托管该网站。我使用apache2sites available.conf文件重定向端口 dynamicUrl = $routeParams.dynamicUrl; 今天的URL如下所示: http://prod.mywebsiteurl.com/myapp/#/mp dynamicUrl = $routeParams.dynamicUrl; 最后一条路径是动态的,当Ang

我有一个AngularJS(1.4.5)网站,它位于apache2服务器上,有一个小的NodeJS实例,用于与后端通信并托管该网站。我使用apache2
sites available.conf
文件重定向端口

dynamicUrl = $routeParams.dynamicUrl;
今天的URL如下所示:

http://prod.mywebsiteurl.com/myapp/#/mp
dynamicUrl = $routeParams.dynamicUrl;
最后一条路径是动态的,当Angular应用程序启动时,它使用以下参数获取最后一个参数:(我已经用$routeProvider配置了这个参数

dynamicUrl = $routeParams.dynamicUrl;
init()函数中

dynamicUrl = $routeParams.dynamicUrl;
当我使用以下命令启用HTML5模式时:

dynamicUrl = $routeParams.dynamicUrl;
$locationProvider.html5Mode(true);
我无法访问该网站:

dynamicUrl = $routeParams.dynamicUrl;
http://prod.mywebsiteurl.com/myapp/mp
它给出了一个apache2错误

dynamicUrl = $routeParams.dynamicUrl;
Cannot GET /MP (404)
但是,如果我键入旧地址,使用
它将重定向到站点,而不使用

dynamicUrl = $routeParams.dynamicUrl;
你知道如何解决这个问题吗?这是apache2配置吗?如果是的话?我该怎么做?我是一个真正的apache2 noob

dynamicUrl = $routeParams.dynamicUrl;
我想我必须有一个.htaccess文件并使用这个小重写规则

dynamicUrl = $routeParams.dynamicUrl;
RewriteEngine On  
  # If an existing asset or directory is requested go to it as it is
  RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f [OR]
  RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d
  RewriteRule ^ - [L]

  # If the requested resource doesn't exist, use index.html
  RewriteRule ^ /index.html
我在这页上找到了它:

dynamicUrl = $routeParams.dynamicUrl;
但是我使用一个节点作为Web服务器,所以我真的不知道把文件放在哪里,服务器是一个Ubuntu服务器。我把它放在NodeJS根目录下,但这似乎不是很好

dynamicUrl = $routeParams.dynamicUrl;

感谢您的帮助。

我想,对于angular应用程序,您只有一个入口点(index.html),然后内部路由将为您完成所有工作。在node中,您需要做的是每次收到的呼叫都返回index.html

dynamicUrl = $routeParams.dynamicUrl;
不幸的是,sou没有说明您在节点中使用了什么,如果是框架还是非框架。假设您有一个运行的express实例,您可以执行以下操作:

dynamicUrl = $routeParams.dynamicUrl;
var express = require('express');

var server = express();
server.use('/public', express.static(__dirname + '/public'));

server.get('/*', function(req, res){
    res.sendFile(__dirname + '/index.html');
});

var port = 8000;
server.listen(port, function() {
    console.log('server listening on port ' + port);
});
server.get(“/*”
这将基本上接受任何调用,并始终返回index.html。因此,您的angular应用程序可以启动

dynamicUrl = $routeParams.dynamicUrl;