随时我在任何角度路线上添加一个参数或查询,我的浏览器请求会将该参数添加到我的css文件的url请求中。
我正在使用html5mode true(漂亮的网址)
.state('profile', {
url: "/profile/:steamId",
templateUrl: "app/profile/profile.html",
controller: "ProfileCtrl",
controllerAs: "profile",
data: {
contentPages: 1
}
});
$locationProvider.html5Mode(true);
我的角色服务
getProfile:function(steamId){
var self = this;
return $http.get('api/user/'+steamId).then(function(response){
$log.debug('getProfile', response.data);
return response.data;
}, function(err){
$log.error('Error user', err);
});
},
并在我的服务器中
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
// Launch ======================================================================
var server = app.listen(8000, function(){
logger.info('The dagger flies at 8000');
});
// Configuration ======================================================================
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
app.use(express.static(__dirname + '/public'));
// Routes ======================================================================
var users = require('./routes/users.route')(passport, logger);
// Middleware ======================================================================
app.use('/api/users', users);
app.get('/*', function(req, res, next) {
res.sendFile('index.html', { root: 'public' });
});
我的index.html已设置为此
<link rel="stylesheet" href="builds/style.css"/>
通常情况下,当我在localhost:8000 / profile上时,我会在网络标签中看到类似的内容
http://localhost:8000/builds/style.css
但是当我添加像这样的参数时
localhost:8000/profile/13456
在我的网络标签中,我看到了这个
http://localhost:8000/profile/builds/style.css
因此有一堆没有样式的HTML代码。
我该如何解决这个问题?我尝试过使用快速静态中间件,但没有成功。
答案 0 :(得分:2)
链接CSS或JavaScript与您当前的目录相关。要解决此问题,请在路径前添加/
以将其作为绝对路径引用:
<link rel="stylesheet" href="/builds/style.css"/>