2016-12-10 42 views
1

在我的应用我有3个站点 - 用户前端,管理控制台,飞溅页。我想在本地主机运行用户前端:8080,在本地主机管理控制台:8080 /管理飞溅在本地主机:8080 /飞溅Nginx的:无法在单一网址运行多个网站

要运行这些我用下面的配置:

server { 
    listen 8080; 
    server_name localhost; 
    root /home/ajit/git/univisior; 

location/{ 
    alias /home/ajit/git/univisior/FrontEnd/dist/; 
    index index.html; 
    try_files $uri $uri/ /index.html; 

} 
location /admin{ 
    alias /home/ajit/git/univisior/admin/dist/; 
    index index.html; 
    try_files $uri $uri/ index.html; 

} 

location /splash { 
    alias /home/ajit/git/univisior/Splash/dist/; 
    index index.html; 
    try_files $uri $uri/ /index.html; 

} 

location /api { 
    proxy_pass http://localhost:3000/api; 

} 

} 

具有这种配置的问题是这样的

  1. 当我打开管理界面(本地主机:8080 /管理员)我得到错误

VM189:1 Uncaught SyntaxError: Unexpected token <

,但是当我运行管理站点的单站点配置它工作正常,nginx的配置粘贴如下:

server { 

     listen 9010; 
     server_name localhost; 
     root /home/ajit/git/univisior/admin/dist; 
     index index.html index.htm; 
     location/{ 
       index index.html; 
       try_files $uri $uri/ /index.html; 
     } 
     location /api { 
      proxy_pass http://localhost:3000/api; 
     } 
     location /static { 
      alias /opt/univisor; 
     } 
} 
  • 飞溅页我无法得到images.splash也工作正常,如果我与单一站点配置就像管理员运行此。
  • 用户前端工作正常,但我面临的问题与管理和splash.can任何人都可以帮助我解决这个问题。

    感谢

    回答

    0

    我能找出问题。管理员和启动页面中的问题都是相同的。对于图像和脚本文件中的index.html的路径被写了

    <img src="../images/logo.png" alt="logo"> 
    . 
    . 
    <script src="../bower_components/jquery/dist/jquery.js"></script> 
    <script src="../bower_components/angular/angular.js"></script> 
    

    运行时与单个站点nginx的配置(上面有问题粘贴管理站点配置)均为admin和飞溅工作正常索引文件。但是,在配置这样

    . 
    . 
    location/{ 
        alias /home/ajit/git/univisior/FrontEnd/dist/; 
        index index.html; 
        try_files $uri $uri/ /index.html; 
    
    } 
    location /admin{ 
        alias /home/ajit/git/univisior/admin/dist/; 
        index index.html; 
        try_files $uri $uri/ index.html; 
    
    } 
    
    location /splash { 
        alias /home/ajit/git/univisior/Splash/dist/; 
        index index.html; 
        try_files $uri $uri/ /index.html; 
    } 
    . 
    . 
    

    同时运行它们时,使问题作为<img src="../images/logo.png" alt="logo">会寻找网址本地主机:8080 /图像/ logo.png以代替localhost:8080 /管理/图像/ logo.png同样适用于由于此浏览器的脚本无法获取脚本/图像。

    为了解决这个问题,我将index.html中的../替换为最终的index.html。

    <img src="images/logo.png" alt="logo"> 
    . 
    . 
    <script src="bower_components/jquery/dist/jquery.js"></script> 
    <script src="bower_components/angular/angular.js"></script> 
    
    0

    从您的别名指令后/

    location/{ 
        alias /home/ajit/git/univisior/FrontEnd/dist/; 
        index index.html; 
        try_files $uri $uri/ /index.html; 
    
    } 
    location /admin{ 
        # alias /home/ajit/git/univisior/admin/dist/; 
        alias /home/ajit/git/univisior/admin/dist; 
        # index index.html; 
        # try_files $uri $uri/ index.html; 
        try_files $url $uri/; 
    
    } 
    
    location /splash { 
        # alias /home/ajit/git/univisior/Splash/dist/; 
        alias /home/ajit/git/univisior/Splash/dist; 
        # index index.html; 
        # try_files $uri $uri/ /index.html; 
        try_files $uri $uri/; 
    } 
    
    +0

    删除/从别名后出现“403 Forbidden”错误 –

    +0

    请发布或粘贴您的日志文件。 – 2ps

    +0

    我发布了错误日志 –