Angularjs 删除角URL中的#
我有一个AngularJS(1.4.5)网站,它位于apache2服务器上,有一个小的NodeJS实例,用于与后端通信并托管该网站。我使用apache2Angularjs 删除角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
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;