繁体   English   中英

为什么我在 Magento 中的 js/index.php/x.js 上找不到错误?

[英]Why I am getting not found error on js/index.php/x.js in Magento?

Magento forgotpassword.phtml 页面使用 js/index.php/x.js?f=prototype/prototype.js,prototype/validation.js,mage/adminhtml/events.js,mage/adminhtml/form.js,scriptaculous/effects。 js 这将返回自定义 Magento 模板 404 错误页面。 显然 js/index.php 脚本应该连接提供的脚本(出于优化目的)并返回服务器上物理上不存在的虚拟 x.js 文件。 但就我而言,这不起作用。 为了在 js/index.php 开头进行测试,我将一些信息添加到文件中。 当我调用 js/index.php 时,脚本中会添加一个条目。 当我调用 js/index.php/x.js 时,没有记录任何内容,这意味着控制永远不会传递给 js/index.php。 浏览互联网我发现使用 nginx 处理 static 文件的信息可能会导致问题,但我在托管设置中关闭了 nginx。 我的主机管理员声称,无论 nginx 是打开还是关闭,这适用于该服务器上其他所有人的 Magento 安装。 如何解决问题? 我应该寻找什么? .htacces 中的某些东西可以归咎于它吗? 我的 Magento 安装位于子文件夹中这一事实是否会以某种方式导致此问题?

最后我找到了问题的根本原因。 由于我有一个多网站 Magento 设置,我需要在我的 Magento .htaccess 中添加额外的条目来设置环境变量,具体取决于选择要在前端显示的正确网站。 我使用了几篇互联网文章中提出的模板。 它是这样的:

RewriteCond %{HTTP_HOST} ^domain1$
RewriteRule (.*) $1 [E=MAGE_RUN_CODE:domain1]
RewriteRule (.*) $1 [E=MAGE_RUN_TYPE:website]
RewriteCond %{HTTP_HOST} ^domain2$
RewriteRule (.*) $1 [E=MAGE_RUN_CODE:domain2]
RewriteRule (.*) $1 [E=MAGE_RUN_TYPE:website]

当我使用另一种解决方案时问题就消失了(但是某些服务器可能不支持该解决方案):

SetEnvIf Host ^domain1$ MAGE_RUN_CODE=domain1
SetEnvIf Host ^domain1$ MAGE_RUN_TYPE=website
SetEnvIf Host ^domain2$ MAGE_RUN_CODE=domain1
SetEnvIf Host ^domain2$ MAGE_RUN_TYPE=website

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM