【IIS】WebApi和Vue混合发布

何为混合发布呢?

  混合发布的意思就是在webapi的主文件夹下,放置vue网站目录   让vue和webapi使用同一个端口号进行访问

  比如:原来的webapi地址为:https://47.96.66.32:1234/Webapi/         Vue再发布一个地址是:https://47.96.66.32:1235/

       混合后Vue的地址是:https://47.96.66.32:1235/   Webapi地址也是:https://47.96.66.32:1235/Webapi/

 

具体实现:

  a、修改WebApi目录下的页面结构,下图应该都不陌生。里面记录了网站入口及模板文件

  

 

 

         b、我们要做的就是把Vue的index.html文件及静态资源文件拷贝到这里,然后修改默认的index.cshtml文件,让index.cshtml文件的内容变为Vue的Index.html文件内容即可

  然后把static文件夹放置到相同路径下,如图:  (图中index.cshtml实际上就是Vue的index.html文件,只要简单修改文件后缀让.net能识别到文件即可)

  

 

 

  

 

 

 

 

 

   c、把_Layout.cshtml文件修改一下,去掉默认的界面布局

  

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

</head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<body>
        @RenderBody()
</body>
</html>

 

       d、然后运行页面,此时页面找不到资源   .......css类似的错误。根据提示可以看到资源文件是默认在网站根目录加载的,所以把static静态文件拷贝到webapi根目录下

  

 

 

   此时再运行就OK了,而且这样也能保证webapi的访问。

  e、最后提一个Vue图标问题,也是因为路径导致Vue网站里的小图标无法访问,可根据提示将ttf、woff资源文件拷贝到对应目录即可。

      最终就是将fonts文件夹在css文件夹下创建static文件夹,然后把fonts文件夹放进去就可以了

      

 

 

后续碰到的问题:

     由于Vue前端注释掉了页面地址中默认的#号,导致类似 xxxxx/stuList页面刷新时触发了MVC路由机制

     页面就看不到了,提示找不到对应的Controller

     

 

 

 

     解决的方法:

           恢复Vue页面中的#号,防止触发MVC后台路由

 

 

 

 

      

      

  

 

posted @ 2020-10-13 12:34  狼窝窝  阅读(1455)  评论(1编辑  收藏  举报