2017-07-07 13 views
1

私はjavascriptファイルを作成しています。最初のいくつかの編集ではすべて正常に機能していましたが、変更してページをリロードすると、ブラウザのコンソールエラーSyntaxError: illegal characterが表示され、ソースを確認すると、古いバージョンのファイルが s最後に。JS/CSSファイルがリフレッシュされない(おそらくサーバー側)

私は1〜2週間問題なくこのサイトで作業しています。しかし、先日私はCSSファイルを使って同様の問題を抱えていました。私は、ファイルの名前を変更し、爽快にして名前をつけて作業していると思います。それはまだ適切に更新されません、そして、明らかにこれは開発を行うための実用的な方法ではありません。

私の環境

  • 私は私のサイトコードは、共有フォルダ内にある
  • のWindows 7にVirtualBoxの下CentOSに7上のウェブサイトを開発しています。 (WindowsではCentosがアクセスできます)。
  • Apache、PHP 7、MariaDB。
  • TYPO3 8.7.3 CMS
  • 自分のサイトは、Windowsホストファイルで定義されているローカルドメインで表示されます。私は(Ctrlキー+ F5を使用して、複数回、)

    • 更新ページを試してみた何

  • JSファイルを直接表示します。リフレッシュ。 (mydomain/typo3conf/ext/myext/Resources/Public/js/file.js)
  • file.jsの後に?somerandomstringを追加して更新します。
  • 「すべてのキャッシュをフラッシュする」を使用して、自分のCMSキャッシュをクリアします。
  • CMSの.htaccessファイルの名前を変更します。 Centosでは/sbin/service httpd restartを実行してください。 JSファイルをリフレッシュします。
  • 他のブラウザでJSファイルを開きます。
  • Centosを再起動してリフレッシュすると、ファイルの最新バージョンが取得されます。しかし、私は再びそれを編集する場合、私は同じエラーが発生します。
  • ファイルの変更を元に戻すと、正常に読み込まれて実行されます。

私はこれが私のブラウザであると判断します。私は.htaccess の名前を変更するといいと思います。はCMSであることを除外しますが、私はそれを確かめる知識は持っていません。

次に、私は次に何を確認しますか?

編集:

はまた、私はそれを短くするために私のファイルを編集する場合、それは新しいファイルの長さに古いファイルをトリム、気づきました。

答えて

0

資産(css、js、画像など)にも同じ問題があります。 私の現在の知識として、動作する唯一のものは、URLの隣に次のような乱数を追加しています:/main.js?someRandomNumber

これにより、ブラウザはファイルをリロードして新しいコードをロードします。これを実現するために

、このようなPHPを使用する:あなたがこれを行うには良い方法を見つけた場合は私に知らせてください

<script src=<?php echo '"main.js?' . rand() .'"'; ?>></script> 

...

+0

これは私の問題ではありません。私はファイルを直接リロードして、 '?randomwhatever'をURLの最後に追加しようとしました。私はまだ同じエラーでファイルを取得します。 – nHaskins

+0

次に、Webサイトのバックアップを作成し、元のWebサイトを削除してください。削除後、サーバーサービスを再起動し、Webサイトを再度アップロードしてください。 –

+0

それは機能しましたか?別の方法を見つけたら教えてください。 –

0

私にこれはあなたのVBOXの問題のように聞こえますセットアップ。一般に、Ctrl + F5を押すと、ブラウザはすべてのスクリプトをリロードします。

ランダムなクエリ文字列をスクリプトに追加することは、非常に悪い考えです。これは、httpでアクセスするたびに新しいリソースになるためです。これは、スクリプトをアップロードしていない場合は、あなたのプロジェクトが

<script src="path/to/script.js?v=<?= filemtime($file); ?>"><script> 

を展開するたびに、代替のようになり、次の例では、作品(あなたの展開戦略に応じて)チェックサムまたは変更時に

を行うべきです

<script src="path/to/script.js?v=<?= md5_file($file); ?>"></script> 

v値が変更されると、ブラウザが新しいリソースとして識別する必要があります。

httpで直接ファイルにアクセスした場合(curlなど)、誤ったバージョンのファイルを返すと、typo3から独立した問題が発生します。私はまた、それがapacheと関係があるのか​​疑問だ。

あなたのvirtualhostインスタンスにguestadditionsをインストールする必要がありますね。また、すべてのアクセス許可が正しく設定されていることを確認します。

説明のために:あなたがアクセスしたファイルはどこにありますか? typo3(例えば、typo3temp/compressor)の生成/連結ファイルにアクセスすると、問題が発生する可能性があります。これらのファイルはそこに保存されますが、ソースは別の場所にあります。

関連する問題