質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

4回答

1327閲覧

スタイルーシートやスクリプトファイルが読み込めないので教えてください

alche

総合スコア11

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

1クリップ

投稿2018/03/03 20:55

編集2018/03/04 02:28

前提・実現したいこと

サーバーにデプロイしたアプリケーションで、スタイルシートや、JavaScriptを
適用したい。

発生している問題・エラーメッセージ

サーバー:Linux
webサーバー Apache

エラーメッセージ

access_log
:
223.216.185.111 (-) - - [28/Feb/2018:21:18:49 +0000] "GET hoge.css HTTP/1.1" 302 2 "http://hogehoge.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36"
:

PHPで開発

試したこと

Chromeでソース表示して、CSSファイルをクリックしてもエラーになってリダイレクトされる
状態です

補足情報

css、JavaScriptはlinkタグを使用してます
ただベースディレクトリは <% echo $_BaseDhirectory %> を使用してPHP側でディレクトリ
をセットするようにしてます。

htaccessへの追記など、何か必要ですか?


[ec2-user@ip-9-9-9-9 html]$ ls -ltrA web
total 16
-rw-r--r-- 1 webapp webapp 62 Feb 22 14:31 index.php
-rw-r--r-- 1 webapp webapp 1073 Feb 26 18:18 .htaccess
drwxr-xr-x 8 webapp webapp 4096 Mar 4 00:57 app
drwxr-xr-x 4 webapp webapp 4096 Mar 4 00:57 assets
[ec2-user@ip-9-9-9-9 html]$


composer.json

{
"require": {
"silex/silex": "~1.0",
"twig/twig": ">=1.8,<2.0-dev"
},
"minimum-stability": "dev"
}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/03/04 01:57

ls -ltrA /web の結果を質問に追記してください
退会済みユーザー

退会済みユーザー

2018/03/04 01:58

vender ディレクトリ以下がある場合は無視してください
alche

2018/03/04 02:14

[ec2-user@ip-9-9-9-9 html]$ ls -ltrA web
alche

2018/03/04 02:14

total 16
alche

2018/03/04 02:15 編集

-rw-r--r-- 1 webapp webapp 62 Feb 22 14:31 index.php -rw-r--r-- 1 webapp webapp 1073 Feb 26 18:18 .htaccess drwxr-xr-x 8 webapp webapp 4096 Mar 4 00:57 app drwxr-xr-x 4 webapp webapp 4096 Mar 4 00:57 assets [ec2-user@ip-9-9-9-9 html]$
退会済みユーザー

退会済みユーザー

2018/03/04 02:15

質問に追記してくださいの意味を理解できてないのかな?
alche

2018/03/04 02:16

回答が編集できなかったので試しただけです。
退会済みユーザー

退会済みユーザー

2018/03/04 02:24

vender 以下てのは vender/composer のように物理的に vender 以下にあるので コマンドで vender 以下に出力されるものじゃないので total からみるにあと3つあると思います
退会済みユーザー

退会済みユーザー

2018/03/04 02:25

多分この個数だと composer.json があるとおもうので これも追記してください
guest

回答4

0

silex は 別ディレクトリに設置するとかの方式じゃなかったはずなので

<link href="/css/bootstrap.css" ...

web ┠css ┃┠bootstrap.css

をそのままさしているはずです。

あなたの現状ですが

<link href="bootstrap.css" ...

と設定しているため

web ┠bootstrap.css

にファイルがないから 302 でredirectをしてるのかと思われます。
※ ブラウザに来た時のHTMLで説明してます

投稿2018/03/04 02:59

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

alche

2018/03/04 03:10

質問にもあるように PHP側   : $projectsPHPPath = ""; $projectsAssetsPath = $projectsPHPPath . "assets";   : HTML側 <link rel="stylesheet" type="text/css" href="<?php echo $projectsAssetsPath . '/css/bootstrap.min.css' ; ?>" > としているので <link href="bootstrap.css"... とならずに <link href="assers/css/bootstrap.css"... になると思うんですが・・・ ※すみませんMarkDown記法がわかってないので、べた書きです
退会済みユーザー

退会済みユーザー

2018/03/04 03:19

質問に書いてませんよね ちなみにこういう記述にしたらこの位置にあるべきの説明なので あなたがPHPにどうかいてようが関係ありません。 結果のHTMLで ドキュメントルート以下の位置にあるかを確認してください
bassbone

2018/03/04 04:06

質問本文に記載のある「composer.json」からsilexを使っているのは明らかなので、silexの流儀にならってコーディングしないといけないのでしょうね。 (というか質問本文のlsの結果にはcomposer.jsonが見当たらないが・・・) そこに無理やり独自アプリを置こうとして嵌っているような・・・
退会済みユーザー

退会済みユーザー

2018/03/04 04:37

bassbone ls の結果は たぶんうちの説明がまずって venderディレクトリ以下のファイルのことととらずに コマンドの結果で vender 以下に出たものを削ったような気がするんだよね。 silex1.x の基本的なお作法は静的ファイルはドキュメントルート以下で管理が基本だったとおもいましたよ
bassbone

2018/03/04 04:57 編集

asahina19791さん、コメントありがとうございます。 おそらく結果には無いだけで、composer.json、venderディレクトリはあるということですね。 うーん、いまいちどういう経緯でsilexが入っているのかよくわからない・・・ ちなみに、silexはほとんど触ったことが無いのですが、静的ファイル関連の公式ドキュメントはこれですかね。 https://silex.symfony.com/doc/1.3/cookbook/assets.html
退会済みユーザー

退会済みユーザー

2018/03/04 05:18 編集

それですね その機能は /silexアプリケーション から /subdir/silexアプリケーション に移動したときにテンプレートを修正しないでいい機能です。 公開領域外においてルーティングするための機能ではないです。
m.ts10806

2018/03/04 09:03

全員でそれぞれの回答にぶらさがって会話しているのでどれかにまとめた方がいい気がしてきました(回答者もあちこち見るの大変でしょうし)
退会済みユーザー

退会済みユーザー

2018/03/04 09:20

「使ってないと思います。」と「思います」と言ってる以上最低一人共同開発者がいるきがするんだよなぁ
m.ts10806

2018/03/04 09:38

それは私も感じてました。自身がメインではなさそうな気も。
guest

0

http://hogehoge.php

通常は「http://{ホスト情報(localhostやipやexample.comなど)}/hogehoge.php」になると思いますが、アクセスURLに間違いはないでしょうか?

現状の提示情報だけだと実行しているPHPとそれぞれの位置関係が分かりませんので、ディレクトリ構成をWebルートディレクトリ(httpd.confのDocumentRootに設定されている情報)を中心にご提示いただけませんか?

また、対象のソースコードもご提示ください。
「css、JavaScriptはlinkタグを使用してます」と仰っていますが、JavaScriptはlinkタグではありませんし。

投稿2018/03/03 21:41

編集2018/03/03 23:16
m.ts10806

総合スコア80850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

alche

2018/03/03 22:06

DocumentRoot は /web /web/index.php <?php header("Location: .\app/app.php"); ?> /web/app/app.php <?php require_once( dirname(__FILE__) . '/appCommon/appCommonPhp.php'); ?> <!doctype html> <html> <head> <?php header( 'Expires: Thu, 01 Jan 1970 00:00:00 GMT' ); header( 'Last-Modified: '.gmdate( 'D, d M Y H:i:s' ).' GMT' ); ?> <title>HogeHoge</title> <meta charset="UTF-8"> <?php require_once( dirname(__FILE__) . '/appCommon/appCommonHtmlCSS.php' ) ;?> <?php require_once( dirname(__FILE__) . '/appCommon/appCommonHtmlJS.php' ) ;?> </head> <body> <h1>HogeHoge</h1> <?php require_once( dirname(__FILE__) . '/appCommon/appJavaScript.php' ) ;?> </body> </html> /web/app/appCommon/appCommonPhp.php <?php $projectsPHPPath = ""; $projectsAssetsPath = $projectsPHPPath . "assets"; ?> /web/app/appCommon/appCommonHtmlCSS.php <link rel="stylesheet" type="text/css" href="<?php echo $projectsAssetsPath . '/css/bootstrap.min.css' ; ?>" > <link rel="stylesheet" type="text/css" href="<?php echo $projectsAssetsPath . '/css/Site.css' ; ?>" > /web/app/appCommon/appCommonHtmlJS.php <script type="text/javascript" src="<?php echo $projectsAssetsPath . '/js/jQuery/jquery.js' ; ?>"></script> /web/app/assets/css スタイルシードファイル群(*.css) /web/app/assets/js JavaScriptファイル群(*.js) /web/app/assets/js/jQuery jQuery関連(*.js) /web/app ソースファイル群(*.php) 少しみにくいですが、こんな感じです。 JavaScriptは scriptタグでした。すみません。
退会済みユーザー

退会済みユーザー

2018/03/03 22:53

sample.com : 実在のサイト example.com : RFC仕様で割り振られた説明用ドメイン(全TLD可)
m.ts10806

2018/03/03 23:17 編集

ソースコードは質問本文に追記してください。(コードブロック```で囲うのも忘れずに) 個々の回答に貼っていては他の回答者の目につきません。 >asahina1979さん ご指摘ありがとうございます。修正しました。
bassbone

2018/03/03 23:49

DocumentRootが「/web」であれば、cssやjsを設置するのは「/web/app/assets/〜」ではなく「/web/assets/〜」ではないでしょうか?
alche

2018/03/04 00:40

ありがとうございます。 試してみます。
alche

2018/03/04 01:00

assetsディレクトリを、webディレクトリ配下にコピーしてデプロイしてみましたが駄目でした。
bassbone

2018/03/04 01:37

誤った回答、失礼しました。 いただいた情報をもとに手元でアプリを再現してみましたが、特段問題無くページが閲覧できます。 質問者さん側のサイトにアクセスした際のApacheのaccess_logをいただけませんでしょうか。
guest

0

自己解決

asahina1979さん、bassboneさん、mts10806さん ありがとうございました。

解決しました。
※現在 silex は使ってないのですが、ゆくゆく使いそうなので、定義だけ入れてます。

投稿2018/03/06 03:04

alche

総合スコア11

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

0

phpのバージョン、使っているフレームワークを教えていただけますでしょうか?

投稿2018/03/03 21:29

bassbone

総合スコア767

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

alche

2018/03/03 21:34

早速対応ありがとうございます。 AWSでPHPの環境を作ったのでPHPは7だと思いますが、代表的なフレームワーク(CakePHPとか)は使ってないと思います。
退会済みユーザー

退会済みユーザー

2018/03/04 02:01

日本でしか流行ってない(すたってきている) FuelPHP を利用してるようにしか見えないんだが
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問