ホームページ >バックエンド開発 >PHPチュートリアル >開発環境の問題 (win7+vbox+centos+nginx+php)、JS ファイルの保存の問題
開発を楽しむためにwin7からvboxをダウンロードしてフォルダを共有し、vboxのcentosに開発環境を設定しました。しかし、JS ファイルを保存すると、その中に不可解な内容が表示され、ブラウザは JS ファイルを読み取るときにエラーを報告します。ただし、ファイルを Linux で開いて保存する限り、これは正常です。
ファイル形式、utf8、utf8 bom などの保存方法など、多くの方法を試しましたが、うまくいきませんでした
Linux と win7 でファイルを保存する場合(win7 が保存されるディスクの形式)に違いはありますか共有ファイルの場所は NTFS です)
vbox を使用したことがありません
私は samba を使用し、win は samba ディレクトリをマップし、win は netbeans または editplus を使用して js を書き込みますが問題ありません
js エラー メッセージが何なのかわかりません
echo base64_encode(file_get_contents(' 問題のある js ファイル'));
出力はbase64で、byond Compareは全く同じです
これは意味がありません、jsファイルはブラウザがそれを解析するときに問題が発生します。
次の保存後に Linux が使用できるのはなぜですか?
nginx キャッシュの問題だと思うので、この問題を探しています
はい、内部で何が起こっているのか見てみたいです
見せたくないなら忘れてください
問題は非常に明確ですが、解決策が見つかりませんでした。
Windowsでjsファイルを変更し、ブラウザからアクセスすると、Linuxでファイルをcpして削除し、その後cpしました。バックアップファイルを元のファイルに戻したら、問題ありませんでした。
これは、nginx キャッシュが問題を引き起こしていることを意味します。
静的ファイルアクセスキャッシュの有効期限をオフに設定しました
インポートされたファイルに変更されたバージョン番号も追加しましたが、それでも問題は解決しませんでした
もう 1 つの注意点は、共有フォルダーの形式が vboxsf であることです。これにより、sendfile モジュールの Linux 機能を通常に使用できなくなる可能性があります。 Nginx や Apache などの一部の一般的な Web サーバーでは、構成ファイルで sendfile モジュールが有効になっている場合、クライアントへの応答で不正なファイル コンテンツが返される可能性があります。この問題の詳細な説明については、興味のある学生は Google で「vboxsf sendfile」を検索して詳細を確認してください。現在の提案は、これらのサービスの特定の構成方法を参照し、sendfile モジュールを無効にして、ファイルのコンテンツが正しく送信できるようにすることです。
完璧な解決策:
nginx 設定
sendfile をオンからオフに変更
これは開発環境のみです