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

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

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

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

.htaccess

Apacheウェブサーバーにおいて、ディレクトリ単位で設置及び設定を行う設定ファイルを指します。

Q&A

1回答

457閲覧

.htaccessで拡張子を変更した場合のキャッシュ

ertfds

総合スコア18

PHP

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

.htaccess

Apacheウェブサーバーにおいて、ディレクトリ単位で設置及び設定を行う設定ファイルを指します。

0グッド

1クリップ

投稿2022/08/31 22:24

編集2022/09/01 00:43

.phpを.srcで実行できるように.httacessで拡張子変更を行いました
a.srcにはheader('Content-Type: application/javascript');を記述し、
javascriptとして処理するよう記述します
このa.srcにキャッシュをきかせたいです
ExpiresByType application/javascript "access plus 1 weeks"
を設定してますがキャッシュが有効になりません
どうしたら、キャッシュが効くようになるのでしょうか?

a.scr <?php $expires = 36000; header('Last-Modified: Fri Jan 01 2010 00:00:00 GMT'); header('Expires: ' . gmdate('D, d M Y H:i:s T', time() + $expires)); header('Cache-Control: private, max-age=' . $expires); header('Pragma: '); header('Content-Type: application/javascript'); ?>
.httaccess <ifModule mod_expires.c> ExpiresActive On ExpiresDefault "access plus 1 seconds" ExpiresByType text/javascript "access plus 1 weeks" ExpiresByType application/javascript "access plus 1 weeks" </IfModule>

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

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

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

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

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

maisumakun

2022/09/01 00:00

> a.srcにはheader('Content-Type: application/x-javascript');を記述し、 > ExpiresByType application/javascript "access plus 1 weeks" を設定してますが 両者でMIMEが違うのはなにか意図があってのことでしょうか。
ertfds

2022/09/01 00:07

すみません、それに気づきました application/javascriptとしましたが変わらずキャッシュされません
ertfds

2022/09/01 00:20

あと気になる点としては 応答ヘッダにCache-Control:no-store, no-cache, must-revalidateと記載されています キャッシュしないということなんでしょうが、設定していません
maisumakun

2022/09/01 00:23

a.srcの中身は、記載された以外はどのようなものなのですか?
ertfds

2022/09/01 00:26 編集

<?php header('Content-Type: application/javascript'); ?> function a(){ javascriptのコード~ } です それ以外にありません
ertfds

2022/09/01 00:27

<Files ~ ".(src)$"> Header set Cache-Control "max-age=604800, public" </Files> もやってみましたがダメでした
ertfds

2022/09/01 00:30

すみません実はXHRを使って定期的にa.srcと通信しているのですがXHRの場合べっとにキャッシュ指定が必要なのでしょうか?
guest

回答1

0

ExpiresByTypeは、Apacheが直接読み込むファイルのための構文です。

PHPで結果を生成する場合、ヘッダもPHPで生成してください。

投稿2022/09/01 00:25

maisumakun

総合スコア145184

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

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

ertfds

2022/09/01 00:36

ヘッダをPHPで生成とはどういうことでしょうか?
maisumakun

2022/09/01 00:41

書いてのとおりです。 すでにheader('Content-Type: application/x-javascript');と書いていますが、それと同様にCache-Controlもheader()で出力してください。
ertfds

2022/09/01 00:41

$expires = 36000; header('Last-Modified: Fri Jan 01 2010 00:00:00 GMT'); header('Expires: ' . gmdate('D, d M Y H:i:s T', time() + $expires)); header('Cache-Control: private, max-age=' . $expires); header('Pragma: '); を入れてみましたが変わらずでした
ertfds

2022/09/01 00:46 編集

応答ヘッダにはCache-Control:max-age=604800, public Cache-Control:private, max-age=36000となっていますが Firefoxのネットワークから確認すると転送量の部分がキャッシュの表示じゃなくて数字の表示ですがこれはキャッシュされてないということでしょうか
maisumakun

2022/09/01 00:46

<?phpの前に改行、スペース、あるいはBOMがあったりはしませんか? 単なる文字があると、PHPはそこで中身の出力に入ってしまうので、それ以降のheaderの出力は不可能となります。
maisumakun

2022/09/01 00:47

> キャッシュの表示じゃなくて数字の表示ですが どういう意味ですか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問