Magento 2开发人员模式不会自动重新生成静态文件


14

我在开发人员模式下安装了Magento 2.0.2,但我仍然想不出在我更改CSS时如何强制它重新生成静态视图文件。

我通过运行来验证我处于开发人员模式 php bin/magento deploy:mode:show

此页面上说开发人员模式禁用了静态视图文件缓存,但对我而言并非如此。

我尝试编辑此解决方案中di.xml提到的,但是它并没有改变Magento的行为。

如何告诉magento自动重新生成静态视图文件?

Answers:


4

在开发人员模式下,M2不生成静态文件。它应该从各个模块创建指向它们的符号链接。但是,如果您运行setup:static-content:deploy并将这些文件放置在适当的位置,则不会更新它们。尝试删除所有静态文件,看看Magento是否链接到它们(注意,如果有符号链接,请不要删除实际文件)


1
我尝试删除pub / static的全部内容(不删除.htaccess文件),但是它不起作用。看起来旧文件已重新生成。
AlexandreC

目前,我能够获取更新内容的唯一方法是单击“ Magento缓存管理”页面中的“刷新静态文件缓存”。
AlexandreC

4
我有同样的问题,即在开发人员模式下无法生成符号链接。然后我意识到我已经.htacces从中删除了该文件pub/static; 在下一个请求中恢复.htaccess文件后,pub/static将重新生成所有符号链接;希望能帮助到你。
亚历山德罗·隆奇

Magento 2.0.6目前存在相同的问题。尝试重新添加.htaccess-file(我运行nginx,所以我认为它不会做太多事情),并且按预期的那样,它没有用。以前创建了我的符号链接,但现在不再创建了……
Giel Berkers,

1
正如我们认为pub/static是自动生成的一样,我们也曾一度手动将其删除,并遇到了同样的问题。看起来在我们的apache2 / php7设置中,现在丢失的.htaccess文件确实对此负责。重新创建原始的.htaccess开发人员模式后,它又能正常工作。这里是最近的.htacces的链接:github.com/magento/magento2/blob/develop/pub/static/.htaccess
Jey DWork,2016年

1

我也一样 将站点移至另一台服务器后,事实证明我没有正确设置文件权限。

我跑了find . -type d -exec chmod 770 {} \; && find . -type f -exec chmod 660 {} \; && chmod u+x bin/magento,那解决了我的问题。

更多信息:Magento 2:共享主机的推荐文件权限

更新:确保pub文件夹(magento / pub)和基础文件夹具有读写权限。


2
谁拒绝了:为什么?
克里斯·K

0

这里有点晚,但是我遇到了同样的问题。我developer启用了模式一段时间,然后由于某种原因(有时可能是我的错误),它似乎不再起作用。

对我来说,一个简单的解决方案是再次将模式重置为开发人员:

php bin/magento deploy:mode:show developer

注意:您可能需要将其设置为default然后developer


这也没有帮助。还有其他建议吗?
阿达什·哈特里

0

我面临着同样的问题,我的更新较少,除非我刷新了静态文件,否​​则显示。对我来说,解决方法是禁用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),您所做的更改应在每次进行更改时开始显示。


0

我也有这个问题!

在我看来,这是一个权限问题。

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,最后我的符号链接开始被创建!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.