- PR -

スタイルシートが有効になりません。。。

投稿者投稿内容
デューン
大ベテラン
会議室デビュー日: 2004/04/21
投稿数: 174
お住まい・勤務地: Tokyo
投稿日時: 2009-02-03 18:09
ほぼ同様(のつもり)に作ってみましたところ、上手くいきましたので
参考までにこちらのファイルの配置状態を書いておきます。

Visual Studio WebDeveloper 2008 Express
IIS 5.1(WinXP)
IISの.NETバージョン = 2
アプリルート web_pj

※ webページは同じものを2か所に配置しました
※ vbファイルは配置しましたが省略しています。
※ マスターページでは
<link href="~/StyleSheet.css" rel="stylesheet" type="text/css" />
と指定しました。

c:\web_pj\Default.aspx
c:\web_pj\job\\Default.aspx
c:\web_pj\MasterPage.master
c:\web_pj\StyleSheet.css


(IISでの構成)
既定のWebサイト\web_pj\Default.aspx
既定のWebサイト\web_pj\job\\Default.aspx
既定のWebサイト\web_pj\MasterPage.master
既定のWebサイト\web_pj\StyleSheet.css


ちなみに、
<link href="~/StyleSheet.css" rel="stylesheet" type="text/css" />は

・http://(ipアドレス)/Default.aspx にアクセスした場合は
<link href="StyleSheet.css" rel="stylesheet" type="text/css" />に

・http://(ipアドレス)/job/Default.aspx にアクセスした場合は
<link href="../StyleSheet.css" rel="stylesheet" type="text/css" />に

展開され、どちらもうまくいきました。
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2009-02-03 19:02
引用:
一応動作ができた物をサーバーに持っていき、スタンダーロンのPCからパスを入力
http://192.168.0.15/web_pj/defult.aspx/
して動作確認を行っています。

本当に最後にスラッシュ付けてます?だとすればまずそれがいらないです。

しかも、
引用:
c:products\web_pj\マスターページ1
c:products\web_pj\スタイルシート
c:products\web_pj\job\処理1
c:products\web_pj\job\処理2

この構成ならURLは
http://192.168.0.15/web_pj/job/defult.aspx
じゃないですか?

引用:
※ここで言ってます「スタンダーロンのPC」とは、前書き込みの「@クイライアントPC・・・」のことになります。

なるほど。だとすると私が見てほしかったのは
『「ブラウザで表示(B)」をクリック』で開いたときの出力HTMLソースです。

[ メッセージ編集済み 編集者: べる 編集日時 2009-02-03 19:02 ]
Jetta
常連さん
会議室デビュー日: 2008/10/15
投稿数: 44
投稿日時: 2009-02-04 13:18
デューンさん、べるさん、皆さん
お忙しいのに色々と試していただいたりアドバイスをいただき、本当にありがとうございます。
今朝から色々と書き直して試してみたのですが、結局どれもうまくいきませんでした。

デューンさん
わざわざ作って確認いただきありがとうございます。

> ちなみに、
> <link href="~/StyleSheet.css" rel="stylesheet" type="text/css" />は
> ・http://(ipアドレス)/Default.aspx にアクセスした場合は
> <link href="StyleSheet.css" rel="stylesheet" type="text/css" />に
■<link href="~/StyleSheet.css" rel="stylesheet" type="text/css" />
 この形「~/」にして実行しました。
 クライアントのPCにてソースを確認したところ
 <link href="StyleSheet.css" rel="stylesheet" type="text/css" />
 のようになっていました。

> ・http://(ipアドレス)/job/Default.aspx にアクセスした場合は
> <link href="../StyleSheet.css" rel="stylesheet" type="text/css" />に
■jobフォルダー配下の処理画面を実行しました。
 クライアントのPCにてソースを確認したところ
 <link href="../StyleSheet.css" rel="stylesheet" type="text/css" />
 のように「../」の形になっていました。

しかし、両画面共、文字も画面の配置も間延びしたように大きくなってしまいます。


べるさん
アドバイスありがとうございます。

> 本当に最後にスラッシュ付けてます?だとすればまずそれがいらないです。
■最後にスラッシュを付けて実行していたので、スラッシュを外してみましたが、結果は何も変わりませんでした。

> この構成ならURLは
> http://192.168.0.15/web_pj/job/defult.aspx
> じゃないですか?
■web_pj\Default.aspxのページに各種処理ボタン(ImageButtonコントロール)を用意してあります。
 この処理ボタンのImageUrlプロパティーに「web_pj\job\処理1」を設定してありますので、直接ieからURLを入力して実行はしません。
 
> なるほど。だとすると私が見てほしかったのは
> 『「ブラウザで表示(B)」をクリック』で開いたときの出力HTMLソースです。
■私が理解できておらずすいませんでした。
 確認したところ、
 <link href="StyleSheet.css" rel="stylesheet" type="text/css" />
 のようになっていました。


※皆さんに教えていただいたように試しているのですが、結果としてはまだ解決できていません。
また、デューンさんやべるさんの実行結果と、私の方の実行結果が同じなのですが、表示がうまくされません。
そうなりますと、例えば、IEはVer6なのですが、IEの設定とかに問題がある可能性はあるのでしょうか?

何度も申し訳ありませんが、よろしくお願い致します。
デューン
大ベテラン
会議室デビュー日: 2004/04/21
投稿数: 174
お住まい・勤務地: Tokyo
投稿日時: 2009-02-04 13:33
引用:

画面の配置も間延びしたように大きくなってしまいます。



文字サイズが変更されていないから間延びしたのか、
スタイルは適用されているが別の要因で間延び(zoomとか)しているのか。


とりあえず原因をはっきりさせるために、そもそもスタイルシートが適用されているかどうか確認できるように、
いやでもわかるようなスタイルを埋め込んでおくといいかもしれません。
color: red
とか


あとはServer.MapPath や HttpRequest.ApplicationPathを使って、
サイトのパスやアプリケーションパスを確認してみると、なにかわかるかもしれませんね。


べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2009-02-04 14:50
引用:
Jettaさんの書き込み (2009-02-04 13:18) より:

■web_pjDefault.aspxのページに各種処理ボタン(ImageButtonコントロール)を用意してあります。
 この処理ボタンのImageUrlプロパティーに「web_pj\\job\\処理1」を設定してありますので、直接ieからURLを入力して実行はしません。

ん、そうだったのですか。だとすると
「※例えば、処理1、処理2では、マスターページ1を設定しています。 」とか
「jobフォルダー配下の処理画面を実行しました」の意味がよくわかりません。
ImageUrlはボタンに表示する画像のURLを書くプロパティですが認識はあっています?

http://192.168.0.15/web_pj/defult.aspx
から
http://192.168.0.15/web_pj/StyleSheet.css
を参照するのであれば、linkタグのhrefは
href="StyleSheet.css"
であっています。
(href="../StyleSheet.css" は、
現在表示しているページの1階層上のディレクトリのStyleSheet.cssということになります。)

ということで、
http://192.168.0.15/web_pj/StyleSheet.css
をブラウザに直接うちこんだらどうなるかをやってみてください。
(スタンダーロン上のurl、スタンダーロンからサーバのurl参照、ともに)

デューンさんのおっしゃるように.cssが適用されているか確認したほうがいいでしょうね。
例えばStyleSheet.cssの内容を

body
{
background-color:#FF0000;
}

これだけ(日本語とか書かない)にしてみてください。

もし認証の類が設定されているならすべてはずしてください。
アクセス権限のせいでcssファイルが読めないことはありえなくはないです。
冬寂
ぬし
会議室デビュー日: 2002/09/17
投稿数: 449
投稿日時: 2009-02-04 15:06
引用:

Jettaさんの書き込み (2009-02-04 13:18) より:
■web_pj\Default.aspxのページに各種処理ボタン(ImageButtonコントロール)を用意してあります。
 この処理ボタンのImageUrlプロパティーに「web_pj\job\処理1」を設定してありますので、直接ieからURLを入力して実行はしません。


またまたぱぱ〜っと見ただけなので外しているかもしれませんが、パスの区切り文字が「\」なのがすごくひっかかるんですよね。
(/と\は違う文字ですよ?)

何か、根源的な所で誤解していませんか?

# たぶん、「webサーバーが何をしているのか?」の部分から理解できていないんだと思うんですけどねぇ。
Jetta
常連さん
会議室デビュー日: 2008/10/15
投稿数: 44
投稿日時: 2009-02-04 16:33
デューンさん、べるさん、冬寂さん

ありがとうございます。
結果から申し上げますと、スタイルシートが反映された形で表示できました。
対処した経緯を説明します。

> デューンさんのおっしゃるように.cssが適用されているか確認したほうがいいでしょうね。
> 例えばStyleSheet.cssの内容を
> body
> {
> background-color:#FF0000;
> }
■対処したのですが、やはり変化がありませんでした。

> (/と\は違う文字ですよ?)
■はい。違いは分かるのですが、このスレッドの返信でをタイプしている時は、円マークをタイプしているのですが、送信後画面を見ると逆スラッシュに置き換えられてしまいました。

> もし認証の類が設定されているならすべてはずしてください。
> アクセス権限のせいでcssファイルが読めないことはありえなくはないです。
■大変お恥ずかしいと言うよりいけない事ですが、アクセス権がよく理解出来ていません。

それで、べるさんのアドバイスの通り
http://192.168.0.15/web_pj/StyleSheet.css
を実行した所、「接続しようとするページに問題があるため、そのページを表示できません。」のエラーが出ました。

エラーの中に
【技術情報 (サポート担当者用)
背景
このエラーは、既定のページが存在しないか、ディレクトリの参照が有効になっていないか、または、実行/スクリプトのアクセス権しかないディレクトリにある HTML ページを表示しようとした場合に発生します。】
の説明がありましたので、先程、サーバのweb_pjのプロパティーを開き、とりあえず
チェックを付けました。

以下は、プロパティーを開いた時の状態です(■:チェックあり、□チェックなし)
■スクリプトソースアクセス
□読み取り
■書き込み
□ディレクトリーの参照
■ログアクセス
■このリソースに索引を付ける

「読み取り」と「ディレクトリーの参照」にチェックをして実行した所、スタイルシートが有効な形で表示ができました。
どのチェックでどのように動作するのかを、勉強を兼ね今から確認します。

ご指摘、アドバイスを頂いた皆様は、このような設定は既にOKとの前提でお話をして頂いていたのだと認識しました。
webの開発をやりはじめて間もないとは言え、私の勉強不足、軽はずみな質問で、皆様には色々と貴重な時間を費やさせてしまい、大変申し訳ありませんでした。

これからは、質問を控えるように致します。
本当にすいませんでした。
また、大変ありがとうございました。
デューン
大ベテラン
会議室デビュー日: 2004/04/21
投稿数: 174
お住まい・勤務地: Tokyo
投稿日時: 2009-02-04 19:31
べるさんの
引用:

もし認証の類が設定されているならすべてはずしてください。
アクセス権限のせいでcssファイルが読めないことはありえなくはないです。


の発言をながめて、
「あぁ、なるほど確かに」と思っていたらビンゴだったようですね

老婆心ながら1点だけ。
□ディレクトリーの参照
はチェックを外した方がいいでしょう。

スキルアップ/キャリアアップ(JOB@IT)