- - PR -
外部JavaScriptファイルを作りたい
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-03-17 11:30
初めて投稿します。
ASP.NETでサイトを構築しているのですが、 他のサイトでもJavaScriptタグだけで情報が表示できるようにしたいです。 そこで、本体サイトで動的にJavaScriptファイルをつくり、 他サイトでは外部JavaScriptファイルを参照するタグを書くというのが できるのでは、と思い作ってみました。 ・本体側 JsTest.aspx <script runat=server> Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Response.ContentType = "application/JavaScript" response.write("document.write('表示する情報')") end sub </script> (「表示する情報」のところは本番ではプログラムで動的に作成します) ・外部サイト側 <html> <body> <script language="javascript" src="JsTest.aspx"></script> </body> <html> 一応これでいけそうなのですが、できれば拡張子を.jsにしたいです。 あたりまえですが、JsTest.jsと拡張子を変更しただけでは動きませんでした。 どんな方法が考えられるのでしょうか? よろしくお願いします。 | ||||
|
投稿日時: 2005-03-17 11:48
System.IO.StreamWriterを使えば良いのでは?
| ||||
|
投稿日時: 2005-03-17 12:05
質問がへたですいません。 動的に表示部分を作るのはおっしゃるとおり、 System.IO.StreamWriterなどで作成することができました。 その部分は特に困るということはありませんでした。 困っているのは、拡張子を変えたいという点です。 拡張子を.jsにしたいのですが、どうしてよいのかわからないのです。 単純に拡張子をかえただけでは動かないので、 ・中間のJavaScriptファイルを作ってそこからASPXファイルを呼び出す ・拡張子.jsもAPSXファイルと同じように動くようにサーバを設定する などがありうるのかなとは思うのですが、 どうしたらよいのかわかりません。 | ||||
|
投稿日時: 2005-03-17 12:29
IISはただのWEBサーバで、ASPの処理等はIISが提供するISAPIフィルタで行ってます。
拡張子に対してどのISAPIフィルタを摘要するかの設定を管理ツールで行う事ができます。 管理ツール > サービス > IIS > WEBサイト名を右クリックでプロパティ > ディレクトリタブ > 構成ボタン > アプリケーションのマッピングタブ ここで、.aspxと同じ設定の.jsを作成すればOKです。 ただし、静的な.jsもASPとして解釈されるはずです。 ですので、スクリプトレット「<% %>」がソース内に存在するようなjsファイルなら 予めエスケープする必要があります. 例)var aaa = "<%"; | ||||
|
投稿日時: 2005-03-17 15:49
アプリケーションのマッピングとWeb.configに以下を追加したらできました。
<system.web> <httpHandlers> <add verb="*" path="*.js" type="System.Web.UI.PageHandlerFactory" /> </httpHandlers> </system> ありがとうございました。 |
1