• 【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后台路由

          

          

      

  • 相关阅读:
    json对象与字符串的相互转换,数组和字符串的转换
    angularjs ng-csv 异步下载
    angular2 localStorage的使用
    ng-csv 异步数据下载
    微信小程序AES加密解密
    微信小程序Md5加密(utf-8汉字无影响)
    angular-file-upload封装为指令+图片尺寸限制
    angular+require前端项目架构搭建
    Inspinia_admin-V2.3原版(英文)
    hplus--H+ V2.3 (中文版)
  • 原文地址:https://www.cnblogs.com/yhnet/p/13807951.html
Copyright © 2020-2023  润新知