我在angularjs中使用了node.js中的ngRoute,我创建了一个类似于' localhost:3000 / user /:id'的URL。 我第一次点击链接然后它正确地重定向到这个页面并且工作正常。但是当我刷新这个url时,css和js的外部文件的所有路径都相对于Param url发生了变化。 第一次css文件路径是' /css/style.css'但刷新后它变为' /user/css/style.css'。 我不知道最近发生了什么。但是,如果我在网址中包含#在刷新网址后工作正常。 下面是我的路由配置代码和节点配置代码。 ngRoute提供商 -
$routeProvider.when("/", {
templateUrl: "/pages/home.html",
controller: "homeController"
}).when("/about-us", {
templateUrl: "/pages/about-us.html",
controller: "homeController"
}).when("/users", {
templateUrl: "/pages/users.html",
controller: "usersController"
}).when("/user/:id", {
templateUrl: "/pages/users.html",
controller: "usersController"
})
.otherwise({
redirectTo: "/"
});
$locationProvider.html5Mode({
enabled: true,
requireBase: false
});
node.js中的
var express = require('express');
var logger = require('morgan');
var path = require('path');
var app = express();
var server = require('http').createServer(app);
app.use(logger('dev'));
app.set('port', process.env.PORT || 3000);
app.set('env','development') ;
app.set('views', path.join(__dirname, '/pages'));
app.use(express.static(path.join(__dirname, '/')));
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
next();
});
app.all('*', function(req, res) {
res.sendfile('pages/index.html');
});
server.on('error', function(err){
process.exit(1);
}).listen(app.get('port'), function(){
console.log('App is running at: '+app.get('port'))
});
请帮我解决这个问题。 感谢。
答案 0 :(得分:-1)
您只需将.htaccess文件放在所有路由重定向到index.html页面的位置,这样就可以解决您的问题。
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/index.html$
RewriteCond %{REQUEST_URI} !\.(gif|jpe?g|png|css|js)$
RewriteRule .* / [L,R=302]
尝试将此代码放入.htaccess文件并运行您的应用程序,您将无法获得任何问题,希望此答案对您有所帮助。