IIS路径忽略应用程序文件夹
我缺乏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
?
编辑:搞砸了一些路径。
尝试使用<base>
HTML元素来设置根。
https://www.tutorialspoint.com/html/html_base_tag.htm
在您的例子那就是:
<base href="https://www.the-application.com" />
然后剩下的应该流,以相对路径。
在本地机器上开发时,很可能在DEFAULT网站下的虚拟文件夹下运行。
当您移动到服务器时,您现在正在网站的根目录下运行。
选项:
在IIS的根目录中创建您的dev的机器一个新的站点。然后使用此路径来测试您的网站。迁移到生产时,路径将相同。
用正确的路径创建一个变量,如果运行LOCALHOST(在url中)使用一个路径,否则使用另一个路径。使用JavaScript将链接添加到您的HTML(我为Cordova开发使用IIS下的JavaScript网站所做的一切)。
将您的页面扩展名从.html更改为.aspx (是的,我知道谁想要这样做......)然后按如下方式更改您的链接。 (我不得不删除起始<和结束/>在下面的代码,就不会在后格式化)
链路的rel =“样式表”类型=“文本/ CSS的” href =” <%=“ResolveUrl”(“〜/ css/main.css”)%>“
当你以后浏览你的源时,你会看到...(或者当你浏览到子页面时,它会把正确的相对路径代替你)
<link rel="Stylesheet" type="text/css" href="css/main.css"/>
似乎没有。我试过' ',' '以及这些方面的一些变化,但链接仍然被打破。 –
crowhill