Answers:
在开发人员模式下,M2不生成静态文件。它应该从各个模块创建指向它们的符号链接。但是,如果您运行setup:static-content:deploy并将这些文件放置在适当的位置,则不会更新它们。尝试删除所有静态文件,看看Magento是否链接到它们(注意,如果有符号链接,请不要删除实际文件)
.htacces
从中删除了该文件pub/static
; 在下一个请求中恢复.htaccess
文件后,pub/static
将重新生成所有符号链接;希望能帮助到你。
.htaccess
-file(我运行nginx,所以我认为它不会做太多事情),并且按预期的那样,它没有用。以前创建了我的符号链接,但现在不再创建了……
pub/static
是自动生成的一样,我们也曾一度手动将其删除,并遇到了同样的问题。看起来在我们的apache2 / php7设置中,现在丢失的.htaccess文件确实对此负责。重新创建原始的.htaccess开发人员模式后,它又能正常工作。这里是最近的.htacces的链接:github.com/magento/magento2/blob/develop/pub/static/.htaccess
我也一样 将站点移至另一台服务器后,事实证明我没有正确设置文件权限。
我跑了find . -type d -exec chmod 770 {} \; && find . -type f -exec chmod 660 {} \; && chmod u+x bin/magento
,那解决了我的问题。
更新:确保pub文件夹(magento / pub)和基础文件夹具有读写权限。
我面临着同样的问题,我的更新较少,除非我刷新了静态文件,否则显示。对我来说,解决方法是禁用mod_expires
。这正在缓存CSS等。
在pub/static/.htaccess
文件内部,您应该具有以下内容:
<IfModule mod_expires.c>
############################################
## Add default Expires header
## http://developer.yahoo.com/performance/rules.html#expires
ExpiresActive On
# Data
<FilesMatch \.(zip|gz|gzip|bz2|csv|xml)$>
ExpiresDefault "access plus 0 seconds"
</FilesMatch>
ExpiresByType text/xml "access plus 0 seconds"
ExpiresByType text/csv "access plus 0 seconds"
ExpiresByType application/json "access plus 0 seconds"
ExpiresByType application/zip "access plus 0 seconds"
ExpiresByType application/x-gzip "access plus 0 seconds"
ExpiresByType application/x-bzip2 "access plus 0 seconds"
# CSS, JavaScript, html
<FilesMatch \.(css|js|html|json)$>
ExpiresDefault "access plus 1 year"
</FilesMatch>
ExpiresByType text/css "access plus 1 year"
ExpiresByType text/html "access plus 1 year"
ExpiresByType application/javascript "access plus 1 year"
ExpiresByType application/json "access plus 1 year"
# Favicon, images, flash
<FilesMatch \.(ico|gif|png|jpg|jpeg|swf|svg)$>
ExpiresDefault "access plus 1 year"
</FilesMatch>
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/svg+xml "access plus 1 year"
# Fonts
<FilesMatch \.(eot|ttf|otf|svg|woff|woff2)$>
ExpiresDefault "access plus 1 year"
</FilesMatch>
ExpiresByType application/vnd.ms-fontobject "access plus 1 year"
ExpiresByType application/x-font-ttf "access plus 1 year"
ExpiresByType application/x-font-otf "access plus 1 year"
ExpiresByType application/x-font-woff "access plus 1 year"
ExpiresByType application/font-woff2 "access plus 1 year"
</IfModule>
通过禁用mod_expires
或注释以上内容并在浏览器中进行强制刷新(Mac用户按住Shift + Command + r
),您所做的更改应在每次进行更改时开始显示。
我也有这个问题!
在我看来,这是一个权限问题。
cat /etc/apache2/logs/error_log | grep static
和
尾-f / etc / apache2 / logs / error_log | grep静态
给了我有趣的信息(也许您的日志文件的名称可能不同)
首先我看到:
[Wed Oct 30 12:19:34.287356 2019] [core:crit] [pid 27633] (13)Permission denied: [client 24.48.87.7:16680] AH00529: /home/[datuser]/public_html/pub/static/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable and that '/home/[datuser]/public_html/pub/static/' is executable
原来我的pub / static文件夹不可执行。然后修复后我得到了
[Wed Oct 30 12:22:46.490759 2019] [:error] [pid 27290] [client ipremoved] SoftException in Application.cpp:267: File "/home/[datuser]/public_html/pub/static.php" is writeable by group, referer: [url removed]
[Wed Oct 30 12:22:46.490961 2019] [core:error] [pid 27290] [client ipremoved] End of script output before headers: static.php, referer: [url removed]
在我们的服务器上,由于某些原因,apache无法提供按组可写的文件,我相信某些Cpanel安全性内容。所以我必须在pub下的所有文件上设置644,最后我的符号链接开始被创建!