**任务:**根据product_id检索产品: 示例:当我点击localhost时:8080 / products / 44566 服务器响应产品ID为44566
的产品页面有产品的主页,当我点击它们时,它们将product_id传递给Angular JS控制器,如下所示:
$scope.getProductPage = function(product_id){
// window.location.assign("/products/"+product_id);
$http({
url:"/products/"+product_id,
method : "GET"
}).then(function mySuccess(response){
window.location.assign("/products/"+product_id);
}, function myError(response){
});
};
这将数据发送到节点服务器:
//API to GET the sell page
router.get('/products/:product_id', function(req, res, next) {
var product_id = req.params.product_id;
console.log('product_id', product_id);
res.render("productPage", {data: req.params.product_id});
});
这意味着我渲染productPage.ejs并且响应成功返回到我的角度js控制器:
$ scope.getProductPage = function(product_id){
// window.location.assign("/products/"+product_id);
$http({
url:"/products/"+product_id,
method : "GET"
}).then(function mySuccess(response){
window.location.assign("/products/"+product_id);
}, function myError(response){
});
};
它使用window.location.assign(“/ products /”+ product_id);转到具有该特定product_id的页面。但是当该页面加载时,我看到服务器的以下行为:
请注意,所有网址都与请求/产品/一致,因为主要路径网址应该像那样传递
答案 0 :(得分:0)
通过"这种行为"我假设你的意思是样式表/图像没有正确加载。
这是因为在您的HTML页面(或者更确切地说是.ejs
模板文件)中,您要放置文档相对URL以加载它们。例如:
<img src="images/xyz.png" />
然而,这些应该是绝对URI:
<img src="/images/xyz.png" />
或者,您可以使用<base>
节点中的<head>
标记:
<base href="/">