最近在学习用.net core+angular2js来开发项目。写好以后用F5调试的方法是可以正常打开页面,但是发布到iis以后就出现路径的问题了。
项目发布到localhost/chapter3目录中,静态文件都在localhost/chapter3/wwwroot里面(如index.html,css,js文件),并通过urlrewrite进行重写。通过F12观察,index.html中读取js等文件时,都定位在localhost/js/(实际文件在localhost/chapter3/wwwroot/js中),所以文件是不存在的。
在网上查到一些发布的资料,都是直接在iis里新建一个站点,把站点的目录指到实际的目录中这样处理,这样读取那些文件是没问题的(试过了)。但我希望只有一个站点(只使用80端口),就不知道应该如何去配置了。感觉应该在iis里对chapter3进行配置,但不知道如何进行,请各位前辈指点。

解决方案 »

  1.   

    iis对chapter3进行配置,就是把iis的默认主目录指向chapter3.
      

  2.   


    这样做的话,用http://localhost确实可以访问网站了。
    不过这样是不是就只能一个网站只配置一个项目?比如我再有chapter4,就只能再新建一个网站了么?
    不能像以前那样用http://localhost/chapter3和http://localhost/chapter4这种方式去访问么?
      

  3.   


    你应该了解绝对定位跟相对的对定位的区别。这是你开发 html 和 js  文件时,对 url 规范设计有问题。你们想当然地用了绝对定位。
      

  4.   


    你应该了解绝对定位跟相对的对定位的区别。这是你开发 html 和 js  文件时,对 url 规范设计有问题。你们想当然地用了绝对定位。我是按照书上(ASP.NET Core and  Angular2)的例子走下来的,然后发现了这个问题。mvc刚开始学,还不是非常了解,我也不知道现在的mvc6和以前的版本有没有区别,目前网上比较多的mvc4之类的例子,所写的代码在我现在项目里都是没有的。我希望能实现多个项目放在一个网站上,比如http://locahost/chapter3和http://locahost/chapter4是2个不同的项目,我此前写的很多项目都是这样部署的。如果按照书的上做法,我就只能通过不同的端口来进行区分了所以我想知道究竟可不可以像以前一样部署