2017-02-20 192 views
0
  1. 我创建了一个yii2项目,在我的Windows本地主机上运行正常。ViewNotFoundException共享主机上的Cpanel + Yii2

  2. 我在Windows机器上使用XAMPP来处理Yii2应用程序。

  3. 但由于我在Cpanel Linux Shared Hosting上成功部署了应用程序,因此无法在我的网站上打开这些页面。

  4. 以下是Shared Hosting后端/网络日志上的错误;

    [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 
    

同样的东西工作正常,我的本地机器上。 有什么帮助吗?

+0

你的本地机器WIndows和服务器是Linux吗? – Bizley

+0

是的,先生。那是对的。 –

回答

1

这看起来像一个区分大小写的问题。

检查是否所有的名称和相应的文件保存方式相同,即student_list.php中的查看应该被调用->render('student_list'),而不是像->render('Student_list')

文件夹名称和类名相同。

UPDATE
错误显示你正在呼吁用反斜杠代替斜线角度,所以你应该纠正它。

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

quora.com快速的解释:

这是怎么了两个斜线使用:

正斜杠/

  • /在UNIX文件系统中被使用(通过扩展,Linux的和OS X)。
  • /是几乎所有编程语言中“分割”的标准符号。
  • /也用于URL中作为分隔符。

反斜杠\

  • \在DOS和Windows的文件系统中使用。
  • \用作转义序列(\ N,\吨等)
  • \在UNIX文件系统,用于指示到终端,在一个目录中的路径上的白空间。 (虽然也包括双引号内的绝对文本)。

至于他们的历史,维基百科是你的朋友在这里

斜杠追溯到古罗马的日子。在现代初期,在中世纪欧洲广泛流传的Fraktur剧本中,一个斜线(/)代表一个逗号,而两个斜线(//)代表一个短划线。双斜杠最终演变成类似等号(=),然后进一步被简化为一个单一的破折号一个符号( - )

反斜杠的起源是相当近,虽然

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

欲了解更多信息,请参阅this article

+0

感谢您的回复,正如我所提到的那样,我确保本地计算机和共享主机Linux服务器上的文件结构和命名约定相同。我所做的所有事情都是将我的项目压缩到本地计算机上,并将其放到我的服务器上,就是这样。同样的studd在Windows本地机器上工作。 –

+0

你是否正在像这样'student \ student_list'调用视图? – Bizley

+0

是的。我以同样的方式调用$ this-> render('student/student_list',[....]); –