我们正在将旧版部署迁移到Docker容器。所有服务都将在单独的docker容器中运行。服务包括Postgres,Redis,JobProcessor,LogProcessor,带领事模板的Nginx,Consul,Registrator,Rabbitmq和Platform(Node JS)。
我们将这些服务拆分为Master和Platform。主服务包括除平台之外的所有上述服务。
平台将根据客户要求运行单个应用程序。我们还将修改平台代码以满足客户要求。更改包括设计,布局,图像甚至有时API(包括/删除API)。因此,每个应用程序将作为单独的容器运行。
客户可以使用http://platform.com/AppName
访问该应用程序使用NodeJs,AngularJs构建平台。我们处理代码以根据应用名称进行动态http调用。现在的挑战是加载css文件,图像和一些静态js文件。我们不想修改代码来更新每个应用程序的URL。
有没有任何已知的方法可以解决这个问题?
答案 0 :(得分:0)
这就是我理解的,你想使用不同的URL访问同一组静态文件(css和图像)。
通过指定重写URL格式并指向一个静态URL,猜测应该很简单。因此,相同的内容将是使用不同动态URL的服务器。
重写网址格式如下:some-domain.com/{%a-z}/style.css some-domain.com/style.css
因此它可以为所有产品提供服务。希望这会对你有所帮助。
答案 1 :(得分:0)
通过控制器绑定您的特定css文件。
在angular.module中添加一个控制器来设置特定的css文件。
.controller('cssCtrl',['$scope','$http', function($scope,$http){
$http.get('<your domain specific css url>').
then(function(response) {
//HERE YOU CAN MANIPULATE YOUR CSS TO SET THE RIGHT IMAGE URL
$scope.css = response.data.temp.css;
}, function(response) {
alert('Error retrieving css: ' + response);
});
}]
将HTML链接添加到您的HTML中。
<head ng-controller="cssCtrl">
<link ng-attr-href="{{css}}" rel="stylesheet" type="text/css">
</head>