2016-12-16 56 views
1

我缺乏IIS和IIS管理器的专业知识,甚至没有适当的谷歌条款,所以我希望你会记住,如果你试图点击downvote按钮。IIS路径忽略应用程序文件夹

谢谢。

好吧,所以我有一个角度的应用程序,我没有使用IIS在本地开发它后转移到IIS服务器。

基于IIS的应用程序的副本工作,因为它将按预期的方式服务index.html。不幸的是,外部文件(.ccs,.js等)的链接全部被破坏。

申请住此文件夹中:

\\iis.dev.local\c$\inetpub\wwwroot\the-application 

而且它的.css文件住在这里:

\\iis.dev.local\c$\inetpub\wwwroot\the-application\css\main.css 

按照最初写入时,链接到该.css文件,我们称之为“链接1“:

<link rel="stylesheet" href="/css/main.css"> 

哪些在开发中工作正常,但在IIS上不起作用。

然而,这确实工作,我们称之为“链接2”:我是如何添加应用程序本身坐落在文件夹

<link rel="stylesheet" href="/the-application/css/main.css"> 

看到了吗?这很奇怪,因为相对于index.html,“链接1”应该是正确的 - 但事实并非如此。

我该如何说服我的应用程序,它的基础URL应该是它所在的文件夹,而不是上面的一个级别?

随机部分猜测和/或有用的信息?

1)应用程序位于默认应用程序池中。

2)东西,东西web.config

编辑:搞砸了一些路径。

回答

0

尝试使用<base> HTML元素来设置根。

https://www.tutorialspoint.com/html/html_base_tag.htm

在您的例子那就是:

<base href="https://www.the-application.com" /> 

然后剩下的应该流,以相对路径。

+0

似乎没有。我试过'',''以及这些方面的一些变化,但链接仍然被打破。 – crowhill

0

在本地机器上开发时,很可能在DEFAULT网站下的虚拟文件夹下运行。

当您移动到服务器时,您现在正在网站的根目录下运行。

选项:

  1. 在IIS的根目录中创建您的dev的机器一个新的站点。然后使用此路径来测试您的网站。迁移到生产时,路径将相同。

  2. 用正确的路径创建一个变量,如果运行LOCALHOST(在url中)使用一个路径,否则使用另一个路径。使用JavaScript将链接添加到您的HTML(我为Cordova开发使用IIS下的JavaScript网站所做的一切)。

  3. 将您的页面扩展名从.html更改为.aspx (是的,我知道谁想要这样做......)然后按如下方式更改您的链接。 (我不得不删除起始<和结束/>在下面的代码,就不会在后格式化)

链路的rel =“样式表”类型=“文本/ CSS的” href =” <%=“ResolveUrl”(“〜/ css/main.css”)%>“

当你以后浏览你的源时,你会看到...(或者当你浏览到子页面时,它会把正确的相对路径代替你)

<link rel="Stylesheet" type="text/css" href="css/main.css"/>