【问题标题】:Azure Web App error 404 with Laravel projectLaravel 项目的 Azure Web App 错误 404
【发布时间】:2017-10-29 06:58:46
【问题描述】:

我有一个用 Laravel 编码的项目,它在 localhost 上运行良好。

我从 git 存储库将它上传到 Azure。 当我尝试访问这些页面时,我收到以下消息:

“您要查找的资源已被删除、更改名称或暂时不可用。”

我已经用谷歌搜索了我遇到的问题,但似乎没有任何效果。

编辑:

我的 Azure WebApp 设置为访问 site\wwwroot\public\ 作为应用程序。

Click here to see the picture showing what I said above

【问题讨论】:

    标签: php git laravel azure azure-web-app-service


    【解决方案1】:

    由于我没有尝试过,我删除了 Azure 上的应用程序并创建了另一个应用程序。这一次,它奏效了。我不知道为什么。可能我的旧文件在某处损坏了..我不知道。

    【讨论】:

      【解决方案2】:

      可以通过将 web.config 文件放在公用文件夹中来解决此问题。

      https://github.com/Azure-Samples/laravel-tasks/blob/master/public/web.config

      <configuration>
        <system.webServer>
          <rewrite>
            <rules>
              <rule name="Imported Rule 1" stopProcessing="true">
                <match url="^(.*)/$" ignoreCase="false" />
                <conditions>
                  <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
                </conditions>
                <action type="Redirect" redirectType="Permanent" url="/{R:1}" />
              </rule>
              <rule name="Imported Rule 2" stopProcessing="true">
                <match url="^" ignoreCase="false" />
                <conditions>
                  <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
                  <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
                </conditions>
                <action type="Rewrite" url="index.php" />
              </rule>
            </rules>
          </rewrite>
        </system.webServer>
      </configuration>

      整个过程的更多细节在这里:https://docs.microsoft.com/en-us/azure/app-service/app-service-web-tutorial-php-mysql

      【讨论】:

        【解决方案3】:

        错误提示服务器上不存在您要查找的文件,或者您没有正确配置 web.config 文件。

        如果您使用任何特殊的文件名,我建议您通过 FTP 查看该文件是否存在于服务器上。

        我建议您enable diagnostic logging for Web Apps 获取详细的错误消息和日志。

        此外,请检查它是部署问题还是运行时问题,如下所述:https://github.com/projectkudu/kudu/wiki/Deployment-vs-runtime-issues

        【讨论】:

        • 谢谢你的努力,伙计。但我仍然遇到问题。
        【解决方案4】:

        由于 Laravel 使用 \public 作为入口点并且 .htaccess 文件无法被 Azure Web App 识别, 您能否尝试通过Azure portal在应用程序设置中将虚拟目录设置为site\wwwroot\public?

        【讨论】:

        • 我还能做些什么来解决这个问题?
        • 您是否在 Azure 上启用了 composer 扩展?
        • 将项目推送到 Azure 后,是否所有依赖项都安装到了vendor/ 目录?
        猜你喜欢
        • 2017-01-11
        • 2016-05-13
        • 1970-01-01
        • 2022-10-01
        • 1970-01-01
        • 2020-05-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多