2016-12-16 15 views
1

IISとIISマネージャーのノウハウが不足しているため、ここで適切なgoogle用語を使用することができません。そのダウンボットボタンをクリックすると覚えておいてください。アプリケーションフォルダを無視している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

EDIT:いくつかのパスをねじ込みました。

答えて

0

<base> HTML要素を使用してルートを設定してみてください。あなたの例では

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

それは次のようになります。

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

その後、残りの部分は相対パスで、流れるべき。

+0

と思われます。私は ''、 'とそれらの行に沿っていくつかのバリエーションが、リンクは壊れたままです。 – crowhill

0

ローカルマシンで開発する場合、DEFAULTウェブサイトの仮想フォルダの下で実行されている可能性が非常に高いです。

サーバーに移動すると、サイトのROOTで実行されています。

オプション:

  1. IISのルートでごDEVマシンに新しいサイトを作成します。次に、このパスを使用してサイトをテストします。本番環境に移行すると、パスは同じになります。

  2. 正しいパスで変数を作成し、URL内のLOCALHOSTを実行している場合は1つのパスを使用し、それ以外のパスを使用します。 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"/> 
関連する問題