2017-07-07 22 views
1

我正在處理JavaScript文件。我的第一批編輯工作正常,但現在當我進行更改並重新加載我的頁面時,我收到瀏覽器控制檯錯誤SyntaxError: illegal character,並且當我檢查源代碼時,我看到一箇舊版本的文件帶有一堆「最後。JS/CSS文件不刷新(可能是服務器端)

我一直在這個網站上工作一週或兩週沒有問題。然而,有一天我用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和refresh之後添加?somerandomstring
  • 使用「刷新所有緩存」清除我的CMS緩存。
  • 重命名我的CMS .htaccess文件。在Centos中運行/sbin/service httpd restart。刷新JS文件。
  • 在其他瀏覽器中打開JS文件。
  • 在重新啓動Centos並刷新時,我得到當前版本的文件。但是如果我再次編輯它,那麼我得到同樣的錯誤。
  • 如果我撤銷對我的文件的更改,然後它加載並正常運行。

我認爲這排除了它是我的瀏覽器。我認爲重命名.htaccess 應該排除它是CMS,但我沒有知識是確定的。

那麼,我接下來要檢查什麼?

編輯:

也注意到,如果我修改我的文件,以使其更短,它修剪舊文件複製到新文件的長度。

回答

0

我有我的資產(CSS,JS,圖像等)相同的問題。 唯一可行的(就我目前的知識而言),在網址旁邊添加一個隨機數:/main.js?someRandomNumber

這會強制瀏覽器重新加載文件並加載新代碼。

要做到這一點,使用PHP這樣的:

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

如果你找到一個更好的辦法來做到這一點,請讓我知道...

+0

這不是我的問題。我試着直接重新加載文件並在網址的末尾添加'?randomwhatever'。我仍然得到相同錯誤的文件。 – nHaskins

+0

然後嘗試備份您的網站,然後刪除原始網站。刪除後,重新啓動服務器服務並重新上傳網站。 –

+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有關。

我想你必須在你的虛擬主機實例中安裝guestadditions。此外,我會確保所有權限設置正確。

澄清:您訪問的文件位於何處?如果您訪問typo3中的某些生成/連接文件(例如typo3temp/compressor),則可能是問題,這些文件會保存在那裏,但其源位於其他位置。

相關問題