2012-07-06 25 views
6

Làm cách nào để nối tham số chuỗi truy vấn vào từng CSS và JavaScript bao gồm trong HTML để xóa bộ nhớ cache CSS và JavaScript. Tôi đã thửMagento nối tham số chuỗi truy vấn vào CSS và JS

<action method="addCss"><stylesheet>css/style.css?123</stylesheet></action>

<action method="addItem"><type>skin_css</type><name>css/styles.css?123</name><params/></action>

. Nhưng mỗi lần nó trả về một gói cơ sở như

http://www.example.com/skin/frontend/base/default/styles.css?123

không thư mục chủ đề tùy chỉnh của tôi.

Cách giải quyết vấn đề này?

Trả lời

1

Khi bạn thêm tệp css thông qua cập nhật bố cục xml, hành động addCss (thực sự chỉ gọi hành động addItem với loại được đặt thành skin_css) đang tìm đường dẫn tệp chứ không phải url. Mặc dù chuỗi truy vấn hợp lệ trong url nhưng chúng không có trong tên tệp. Magento thấy rằng như một tham số không hợp lệ, bị nhầm lẫn và rơi trở lại base/default.

Tôi có thể nghĩ đến 2 giải pháp cho việc này. Thật không may cả hai đều là loại hackey.

  1. Chuyển tệp css sang chủ đề mặc định cơ sở. Điều này có tác dụng nhưng nó phụ thuộc vào những nhược điểm có thể không giống nhau trong các phiên bản khác của Magento.

  2. thay vì chèn trực tiếp tệp css, tạo tệp mẫu phtml với mã html để chèn tệp css. Sau đó chèn một khối core/template với tệp mẫu mới đó làm mẫu của nó trong xml bố cục. Tôi đã sử dụng phương pháp này trên các trang web tôi phát triển để làm việc xung quanh vấn đề này.

+0

Cảm ơn trả lời của bạn, tôi sẽ cố gắng giải pháp thứ hai, nhưng vẫn chờ đợi sự thay thế khác. – zhipeng

0

Dưới đây là những gì chúng ta làm:

<reference name="head"> 
    <block type="core/text" name="link.tags"> 
     <action method="setText"> 
     <text> 
      <![CDATA[<link rel="stylesheet" href="/css/style.css?v=2">]]> 
     </text> 
     </action> 
    </block> 
</reference> 

Có ý tưởng này cùng với một số nội dung hữu ích khác từ 5 Useful Tricks For Your Magento local.xml. Thay vào đó, bạn luôn có thể đổi tên tệp từ style_v1.css thành style_v2.css v.v. bất cứ khi nào bạn thực hiện thay đổi - nó có cùng tác dụng như thay đổi style.css?v=1 thành style.css?v=2.

Các vấn đề liên quan