#php #magento
#php #magento
Вопрос:
Я только что запустил magento. Я хочу разработать простое расширение magento, показывающее helloworld. Но когда я хочу получить доступ к странице моего расширения, frontname
оно всегда показывает мою 404 error
.
Я создал папку Mycompany
в app/local
. Затем я создал папку Tbc
. Затем я создал etc
папку и config.xml
файл, который выглядит как
<?xml version="1.0"?>
<config>
<modules>
<Mycompany_Tbc>
<version>0.1.0</version>
</Mycompany_Tbc>
</modules>
<frontend>
<routers>
<tbc>
<use>standard</use>
<args>
<module>Mycompany_Tbc</module>
<frontName>tbc</frontName>
</args>
</tbc>
</routers>
<layout>
<updates>
<tbc>
<file>tbc.xml</file>
</tbc>
</updates>
</layout>
</frontend>
</config>
Затем я создал controllers
каталог в каталоге моего модуля и создал IndexController.php
файл в этом каталоге, например
class Mycompany_Tbc_IndexController extends Mage_Core_Controller_Front_Action {
/**
* index action
*/
public function indexAction() {
echo 'reached here';
die();
}
}
Затем я создал Mycompany_Tbc.xml
файл в app/etc/modules
, который выглядит как
<?xml version="1.0" encoding="UTF-8"?>
<config>
<modules>
<Mycompany_Tbc>
<active>true</active>
<codepool>local</codepool>
</Mycompany_Tbc>
</modules>
</config>
Я вижу, что мой модуль включен в панели администратора.
Но теперь я хочу получить доступ к magento.local/tbc
or magento.local/index.php/tbc
, это всегда выдает 404
ошибку. Я установил этот модуль для исправления ошибок 404, и из-за этого расширения страница 404 показывает
Page not Found
We couldn't find a page at the URL you specified. The information below will help a Magento programmer figure out why.
Original Path
Original Path Information /tbc.
Module/Front Name
Module/Front Name: tbc.
No modules claim [tbc] as a <frontName/>`.
Я пытался создать множество расширений с нуля, но получал одну и ту же ошибку и очищал кэш много раз. Я использую magento 1.9
ОБРАТИТЕ ВНИМАНИЕ, что я делаю это на localhost и magento.local
на моем виртуальном хостинге. Я создал виртуальный хост после установки magento, затем изменил web/unsecure/base_url
и web/secure/base_url
в config_cache_data
таблице.
Любая помощь будет высоко оценена.
Ответ №1:
В Mycompany_Tbc.xml
<codepool>local</codepool>
должно быть <codePool>local</codePool>
Комментарии:
1. Чувак, ты спас мою камеру и голову, которую я собирался разбить об стену: п: п: п:п:п: п тебе головы, чувак
Ответ №2:
<?xml version="1.0" encoding="UTF-8"?>
<config>
<modules>
<Mycompany_Tbc>
<!-- Whether our module is active: true or false -->
<active>true</active>
<!-- Which codePool to use: core, community or local -->
<codePool>local</codePool>
</Mycompany_Tbc>
</modules>
</config>
приложение / код / ядро — Содержит модули, которые распространяются вместе с базовым Magento и составляют основную функциональность.
приложение / код / сообщество — Содержит модули, разработанные третьими сторонами
app / code / local — Содержит разработанные вами пользовательские модули, включая переопределения кода Mage.
Комментарии:
1. Может быть, вы могли бы немного подробнее рассказать о том, почему ваш ответ является возможным решением вопроса? Это было бы полезно и будущим пользователям.
Ответ №3:
У меня была подобная проблема, которую было трудно решить из-за плагина кэширования, но я обнаружил, что я создал модуль в Windows, который работал нормально, хотя он не работал в Linux.
Причина заключалась в том, что Magento ожидал, что папка будет в:
app / code /local / Mycompany / Tbc / controllers и моя папка называлась Controllers — регистр не имел значения в Windows. Потребовалось много времени, чтобы разобраться…