Vấn đề chính là do công việc viết lại không chính xác (như @Marius đã nói). Không có RewriteBase
trong thư mục của tôi pub/static/
và Apache không thể tìm thấy các tệp vì đã tìm kiếm chúng từ thư mục gốc. Sau khi chúng tôi thêm: RewriteBase /pub/static
mọi thứ bắt đầu hoạt động.
Làm thế nào nó hoạt động:
theo địa chỉ này:
http: //m2.uchuhlebov.web.ra/pub/static/version1481885888/frontend/Magento/luma/en_US/mage/requirejs/mixins.js
việc viết lại sẽ hoạt động:
RewriteRule ^version.+?/(.+)$ $1 [L]
khi dòng bắt đầu từ thư mục gốc:
/pub/static/version...
nó không hoạt động và không thể chuyển hướng đến tập tin.
Viết lại mà không có cơ sở:
Viết lại với cơ sở:
Đây là một phần của .htaccess
tập tin của tôi từ pub/static
(viết lại):
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /pub/static
# Remove signature of the static files that is used to overcome the browser cache
RewriteRule ^version.+?/(.+)$ $1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule .* ../static.php?resource=$0 [L]
</IfModule>
Cách tắt phiên bản tệp tĩnh:
Nếu bạn không muốn sử dụng phiên bản tệp tĩnh, bạn có thể tắt tính năng này trong khu vực quản trị Magento:
Có thể thay đổi cài đặt này cho phạm vi mặc định bằng truy vấn MySQL sau :
INSERT INTO `core_config_data`(`path`, `value`) VALUES ('dev/static/sign', 0) ON DUPLICATE KEY UPDATE `value`=0
Sau đó thực hiện lệnh tiếp theo để xóa bộ đệm cấu hình:
bin/magento cache:clean config
PS: Câu trả lời của tôi là thực tế cho người dùng apache2. Nếu bạn đang sử dụng NGINX, hãy xem câu trả lời này (bởi @ kevin-javitz)