共享主机Cpanel+;上的ViewNotFoundException;Yii2

共享主机Cpanel+;上的ViewNotFoundException;Yii2,yii2,yii2-advanced-app,Yii2,Yii2 Advanced App,我已经创建了一个在我的Windows本地主机上完美运行的yii2项目 我正在windows机器上使用XAMPP处理Yi2应用程序 但由于我已经在Cpanel Linux共享主机上成功部署了应用程序,所以我无法打开我网站上的页面 以下是共享主机后端/web日志上的错误 [error][yii\base\ViewNotFoundException] exception 'yii\base\ViewNotFoundException' with message 'The view file doe

我已经创建了一个在我的Windows本地主机上完美运行的yii2项目

  • 我正在windows机器上使用XAMPP处理Yi2应用程序

  • 但由于我已经在Cpanel Linux共享主机上成功部署了应用程序,所以我无法打开我网站上的页面

  • 以下是共享主机后端/web日志上的错误

    [error][yii\base\ViewNotFoundException] exception 'yii\base\ViewNotFoundException' with message 
    
    'The view file does not exist: /home/xyz/public_html/nse/backend/views/site/student\student_list.php' 
    in /home/xyz/public_html/nse/vendor/yiisoft/yii2/base/View.php:229
    

  • 同样的东西在我本地的机器上很好用有帮助吗?

    这看起来像是区分大小写的问题

    检查所有名称和相应文件是否以相同的方式保存,即在
    学生列表中查看。php
    应调用
    ->render('student\u list')
    ,而不是类似于
    ->render('student\u list')

    文件夹名和类名也是如此

    更新
    错误显示您正在使用反斜杠而不是斜杠调用视图,因此您应该更正它

    虽然在Windows上的路径中使用它们没有太大区别,但在Linux上应该正确使用

    快速解释来自:

    这是两个斜杠的使用方式:

    正斜杠
    /

    • /
      用于UNIX(扩展为Linux和OS X)的文件系统
    • /
      是几乎所有编程语言中“除法”的标准符号
    • /
      在URL中也用作分隔符
    反斜杠
    \

    • \
      用于DOS和Windows的文件系统
    • \
      用作转义序列(\n\t等)
    • \
      在UNIX文件系统中用于向终端指示目录路径中的空格。(同时将绝对文本括在双引号内)
    至于他们的历史,维基百科是你的朋友

    这条斜线可以追溯到古罗马时代。在早期现代时期,在中世纪欧洲广泛流传的Frkutr脚本中,一个斜杠(/)代表逗号,而两个斜杠(//)表示短跑。两个斜杠最终演变成一个类似于等号(=)的符号,然后进一步简化为一个破折号(–)

    不过,反斜杠的起源是最近的

    作为字符频率研究的结果,Bob Bemer于1961年9月18日将“\”字符引入ASCII。特别是引入\使ALGOL布尔运算符∧ (及)及∨ (或)可以在ASCII中分别作为“/\”和“/”组成。这两个操作符都包含在Unix V6、Unix V7及更高版本(目前为BSD 2.11)提供的早期版本的C编程语言中


    有关更多信息,请参阅。

    您的本地计算机是否为WIndows,服务器是否为Linux?是的,先生。是的,谢谢你们的回复,正如我提到的,我已经确保了本地机器和共享主机linux服务器上的文件结构和命名约定是相同的。我所做的就是在本地机器上压缩我的项目,然后在我的服务器上解压缩,就是这样。相同的stud在windows本地计算机上工作。您调用的视图是否与此
    学生\student\u列表
    完全相同?我不确定出了什么问题。错误提示您将其命名为
    student\student\u list
    ,但您说您使用了
    student/student\u list
    (用正确的斜杠)。非常感谢您抽出时间。是的,一开始你是对的,正如我在问题中看到的,后来直到你回答,我做了一些点击和试验的方法,瞧!我试着调用“return\Yii::$app->controller->render('student/student\u list',[…]);”而不是“return$this->render('student\student\u list',[…])”,效果很好。如果你能帮我解释一下以上两个电话之间的区别,我绝对可以给你投票和评分。你在回答时说这是区分大小写的问题,我同意!但我并没有看到关于使用$this_render()的页面,而是看到了关于\Yii::$app->controller->render()的页面。