本地部署Magento 2.2切换保加利亚语后图片无法加载求助
看起来你遇到的是保加利亚语对应的静态资源没有正确生成或读取的问题——毕竟切换到英文(美国)一切正常,说明核心的资源文件是存在的,只是保加利亚语版本的静态资源出了问题。结合你已经尝试过的操作,我给你梳理几个更针对性的排查和解决步骤:
确保用正确的语言代码重新部署静态资源
Magento里保加利亚语的标准区域代码是bg_BG,很多时候问题出在部署命令没指定正确的语言,导致保加利亚语的静态资源根本没生成。你可以在Windows终端里执行以下命令:php bin/magento setup:static-content:deploy bg_BG如果需要强制覆盖已有的资源文件,可以加上
-f参数:php bin/magento setup:static-content:deploy -f bg_BG注意:Windows环境下如果用的是XAMPP/WAMP,要确保终端的工作目录是Magento的根目录,并且PHP的路径已经加入系统环境变量,或者直接用完整路径执行PHP。
检查静态资源文件是否存在
部署完成后,去Magento根目录的pub/static/frontend和pub/static/adminhtml文件夹下,查看是否存在bg_BG子目录,并且目录里有对应的CSS、JS和图片文件。如果这个目录不存在,说明部署命令执行失败,大概率是PHP内存限制不够——你需要打开php.ini文件,把memory_limit调整到至少2048M,然后重启本地服务器,再重新执行部署命令。彻底清理缓存并刷新
有时候旧的缓存会干扰新生成的静态资源读取,除了手动删除var/cache、var/page_cache、var/view_preprocessed这些目录外,还要执行Magento的缓存命令:php bin/magento cache:flush php bin/magento cache:clean执行完后,清空浏览器缓存再刷新商品页面试试。
检查后台区域设置是否正确
进入Magento后台,依次点击Stores > Configuration > General > Locale Options,确认Locale选项选择的是 Bulgarian (Bulgaria)(对应代码bg_BG),不要选成其他类似的区域选项,保存配置后再次刷新前台页面。尝试切换到开发者模式排查
如果生产模式下的部署一直有问题,可以先切换到开发者模式——开发者模式下Magento会实时生成静态资源,不需要手动部署:php bin/magento deploy:mode:set developer切换完成后刷新页面,如果静态资源能正常加载,说明生产模式下的静态资源部署流程存在问题,你可以再重新执行生产模式的部署命令:
php bin/magento deploy:mode:set production php bin/magento setup:static-content:deploy bg_BG检查Windows下的文件权限问题
虽然Windows不像Linux那样严格的权限控制,但本地服务器(比如IIS、XAMPP)的运行用户可能没有读取或写入pub/static目录的权限。你可以右键点击Magento根目录,选择“属性 > 安全”,确保服务器运行用户(比如IIS_IUSRS、apache)拥有该目录的读取和写入权限。
按照这些步骤一步步排查,应该能解决保加利亚语下静态资源无法加载的问题。
内容的提问来源于stack exchange,提问作者Angel Miladinov

