CSS / HTML / JS 不更新 XAMPP(本地开发)
Posted
技术标签:
【中文标题】CSS / HTML / JS 不更新 XAMPP(本地开发)【英文标题】:CSS / HTML / JS not updating XAMPP (local development) 【发布时间】:2018-11-10 12:24:02 【问题描述】:我尝试使用 XAMPP 在本地安装 Magento 2。这很好用,除了当我改变我的 CSS、html 或 JS 时,XAMPP 不会得到更新的文件。它只接收我最初创建的文件及其内容,而不是更新版本。
我认为这与 Apache 本身的缓存有关吗?我阅读了一些关于使用 .htaccess (http://httpd.apache.org/docs/2.0/mod/mod_cache.html) 禁用缓存的内容,但我不知道如何实现这一点。
有人知道我该如何解决这个问题吗?
刷新缓存不起作用。部署静态内容可能可行,但我不想每次对 CSS 进行一点小改动时都这样做(当我远程工作时,我也不必这样做)
我认为这个问题与 Magento 无关,而是与 XAMPP(可能是 Apache)有关。
我已启用开发者模式。
【问题讨论】:
【参考方案1】:在开发者模式下,M2 不会生成静态文件。它应该从各个模块创建指向它们的符号链接。但是,如果您已运行 setup:static-content:deploy 并准备好这些文件,则不会更新它们。尝试仅删除您工作过的 pub/static 文件夹中的那些文件,并查看 Magento 是否链接到它们。如果您删除 pub/static/ 文件夹的所有内容,页面将需要很长时间才能在浏览器中加载。
【讨论】:
如何检查 Magento 是否链接到正确的文件? 它将在 pub/static/ 文件夹中显示 Windows 快捷方式图标代替实际文件。【参考方案2】:这不是缓存问题,而是您使用的部署模式。
您可能处于默认模式,在这种情况下,您必须每次都部署静态内容,但是您可以切换到开发人员模式。
https://devdocs.magento.com/guides/v2.0/config-guide/cli/config-cli-subcommands-mode.html
这将阻止 magento 生成静态内容,因为它是通过使用符号链接等动态完成的。
bin/magento deploy:mode:set developer
或者你也可以在里面手动设置
app/etc/env.php
如果开发者模式不起作用,很可能是权限等原因
删除 pub/static 中除 htaccess 文件之外的所有文件,并确保它是可写的
【讨论】:
我已经启用了开发者模式,bin/magento deploy:mode:show
返回我处于开发者模式。在我遇到前端产生大量 js 错误的问题之前,bin/magento setup:static-content:deploy -f
修复了这个问题。但是使用这个命令会不会导致我的网站上没有看到变化?因为它部署了静态内容(这可能不适用于开发者模式?)
您需要确保 pub/static 除了 htaccess 之外是空的并且它是可写的。如果你运行了静态部署就不会了
好的,所以我大概又回到了我的老问题:css / js / html 没有加载,我需要以另一种方式修复。可能有一些权限,所以需要了解如何在 Windows 上像在 Mac / Linux 上一样做到这一点
如果 magento 无法动态创建符号链接,这可能是由于权限问题。确保 pub/static 中存在 htaccess,并且在 apache 中启用了重写。
如果你使用 setup:static-content:deploy -f 那么你每次对你的 css 等进行更改时都必须这样做,如果你不这样做并使用开发者模式它在哪里自动更新。【参考方案3】:
按 Ctrl-F5 硬刷新页面(不使用浏览器的缓存)。
如果您仍然看到以前的页面或更改,那么 Apache 有 mod_cache 缓存它们,或者 PHP 将其操作码缓存设置设置为 在 X 时间内不刷新更改。
取自Xampp and Ampps don't reload files when changed
如果是导致问题的 mod_cache,那么这可能会帮助您实施修复 How to disable cache of Apache?
【讨论】:
不幸的是,在 Magento 2 根目录的 .htaccess 中插入上述内容不起作用。硬刷新也不行。 非常抱歉,我没有使用 Magento 的经验,所以我没有建议。 没问题的朋友以上是关于CSS / HTML / JS 不更新 XAMPP(本地开发)的主要内容,如果未能解决你的问题,请参考以下文章
是否可以在不重新部署的情况下更新 PhoneGap 应用程序中的 HTML/CSS/JS 文件?
XAMPP:无法从智能手机(iPhone)加载访问 url 的资源