2010-01-26 66 views
11

我正在使用Magento 1.4測試Magento 1.3網站。我看到非常奇怪和不一致的行爲。相反,包括我的JavaScript文件的URL,Magento的與JS文件的完整文件系統路徑創建的標籤,像這樣:爲什麼Magento 1.4包含JavaScript文件的文件系統路徑?

<script type="text/javascript" src="/home/my_username/public_html/js/prototype/prototype.js"></script> 

我相信這是關係到新的「主題JavaScript和CSS文件結合起來一個文件「功能。事實上,當我登錄到管理,並單擊「刷新的JavaScript/CSS緩存」,然後在第一頁加載成功,我看到一個JS包括類似於:

<script type="text/javascript" src="/media/js/5b8cfac152fcb2a5f93ef9571d338c54.js"></script> 

但隨後的年齡負荷加載每個單個JS文件,具有完整的路徑名稱。這顯然不會起作用。任何人有什麼想法可能是錯誤的或如何解決這個問題?

+0

@Mattias Bomelin - 我沒有找到一個答案呢。當我這樣做時,我會在這裏作爲答案張貼並接受它。如果您想跟蹤它,請點擊downvote箭頭下方的星標將此問題標記爲收藏夾。 – Josh 2010-02-05 19:55:01

回答

9

進入系統 - >配置 - >開發人員設置 - > Javascript設置 - >合併JavaScript文件(測試版)並將其設置爲「否」。它是真正的測試版:D

+1

這個問題也發生在我的1.7.0.1上...禁用'dev/js/merge_files'是隻適用於我的解決方案 – WonderLand 2014-05-12 13:32:59

+1

如果將合併Javascript和合並CSS爲「否」可解決您的問題,則潛在的問題可能是您的var /目錄不可寫入。嘗試檢查權限和所有權。 – Eric 2015-02-06 20:31:24

+0

謝謝:)爲我工作! 我的問題是我無法看到編輯器中的圖像「媒體存儲」甚至創建文件夾按鈕無法正常工作,瀏覽文件和上傳文件按鈕不可見。 – 2016-03-15 10:30:02

0

配置中「Web」下各種基本URL字段的值是什麼?應該沿線

{{unsecure_base_url}}skin/ 

作爲基礎皮膚URL。

+0

是的,就是這樣。我甚至試圖用http://my.domain.name/替換{{unsecure_base_url}}無濟於事...... – Josh 2010-01-27 02:00:50

0

該問題與JavaScript合併選項有關。不幸的是,這種形式不工作沒有JavaScript。你必須在應用程序/代碼/核心/法師/核心的/ etc/config.xml中的merge_files選項更改爲0。

 <js> 
      <merge_files>0</merge_files> 
      <deprecation>0</deprecation> 
     </js> 

之後,我刪除了var目錄中的所有緩存文件和會議文件。

8

編輯config.xml並沒有爲我做竅門,我不得不在數據庫中禁用它。

在表 'core_config_data' 設置行的值與路徑 '開發/ JS/merge_files'(config_id 772)到 '0 '。

感謝您指引我在正確的方向!

8

我有同樣的問題,並與下面的解決方案上來:

  1. 確認媒體/ JS的權限屬於該安裝的Magento的文件夾是相同的用戶。
  2. 使用管理員清理CSS/JS緩存。

兩者的組合實際上讓事情恢復正常。

+0

這是一個簡單的權限問題,雖然有一個奇怪的表現形式。確保您的'media'文件夾可由Web服務器用戶/組寫入(但是您希望這樣做),一切都很好。 – Nick 2011-02-23 15:20:33

+0

在某些情況下(如我的),您甚至可能無法進入管理員。我遵循Nick的網站上的建議(http://www.nicksays.co.uk/2010/03/magento-including-javascript-by-system-path/)。我必須運行查詢來臨時更改設置,然後登錄並清空緩存,然後將設置更改回來(再次使用查詢,因爲mysql已經打開)。查詢:UPDATE core_config_data SET'value' = 0 WHERE'path' ='dev/js/merge_files';我也想知道是否刪除var/cache/*會起作用。 – 2012-01-30 11:23:18

1

編輯config.xml並沒有爲我做竅門,我不得不在數據庫中禁用它。

在表core_config_data中設置路徑爲dev/js/merge_files (config_id 772) to '0'的行的值。

感謝您指引我在正確的方向!

此解決方案適用於我,謝謝。

1

我有同樣的問題。

它是因爲magento找不到javascript文件。看看你的/var/log/exception.log(您必須啓用日誌系統 - >配置 - >開發人員選項)

在我的記錄是以下錯誤:

例外「異常」與消息'警告:filemtime()[function.filemtime]:stat在/ var/www/app/code/core/Mage/Core/Helper/Data中的/var/www/js/calendar/lang/calendar-en.js失敗.php on line 631'in /var/www/app/code/core/Mage/Core/functions.php:245

所以我創建了這個文件,瞧它的工作原理!

0

in magento 1.4 config_id是879(對我來說) 將此值設爲0後,我的所有.js文件都已返回。超級怪異

4

檢查您的媒體文件夾是否可由您運行的網絡服務器的用戶寫入。 我有一個符號鏈接,這是隻有root用戶可寫

chown -R www-data:www-data media 

幫助的文件夾。

+0

這對我的工作1.8 – 2014-08-07 15:09:09

11

這是權限問題在我的情況。在Magento的根目錄下運行這些SSH命令修復它:

# chown all to proper user and group, ie. www-data 
    chown -R www-data:www-data * 
    # change all files permissions to 644 
    find . -type f -exec chmod 644 {} \; 
    # change all directories permissions to 755 
    find . -type d -exec chmod 755 {} \; 
    # change all to be writable in var and media directories 
    chmod -R 777 var/ media/ 

如果仍然不工作,然後更改路徑列這兩個值從「1」到「0」,在MySQL中core_config_data:

  • 開發/ CSS/merge_css_files
  • 開發/ JS/merge_files
+0

讓你清除服務器以及磁懸浮緩存..然後做什麼@marcinsdance說...每件事都會奏效!非常感謝。 – 2014-04-14 11:49:13

+0

這是我的修補程序。謝謝! – Anderscc 2015-07-16 09:10:30

+0

修復權限問題的好方法...爲我工作.... – 2016-10-31 10:29:35