将Laravel应用程序部署到Heroku时链接不起作用

时间:2018-11-25 08:09:21

标签: php laravel heroku

我得到了一个需要启动并运行的laravel项目。我是laravel的新手,但分配工作后,我相信我已正确配置了所有内容,并将该项目部署到了​​heroku。

当我做工匠在laravel项目中的客户计算机上提供服务并转到给定的url时,所有链接均正常运行。 但是我将其部署到了heroku,我的索引页面显示了,但是没有一个链接起作用。 我得到:

Not Found The requested URL /register was not found on this server. 

运行php artisan serve似乎可以激活链接,但是如何在heroku上实现呢?

我应该注意该应用程序正在使用blade.php文件

我想念什么?

directory structure

这是在/ resources / views中 enter image description here

我在公用文件夹中的_htaccess如下

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>

我尝试添加RewriteBase /没有帮助。 我还尝试将htaccess更改为:

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

我的Procfile有:

web: vendor/bin/heroku-php-apache2 public/

谢谢

4 个答案:

答案 0 :(得分:0)

我解决了我的问题,看来我的web.routes路径中有一些小写字母 那应该是大写字母。本地主机似乎不介意这些单词是否为大写,但linux确实介意....不确定是否会有所帮助,但我在很长的时间内搜索了一些愚蠢的东西...

答案 1 :(得分:0)

我必须重新启动测功机才能运行,运行heroku restart 还要确保您的根目录中有一个Procfile web: vendor/bin/heroku-php-apache2 public/

答案 2 :(得分:-1)

我还有一个未解决的问题...尝试部署到heroku,加载了主页,但链接返回未找到类的错误...尝试了相同的解决方法,包括更新heroku上的作曲家...抱歉,没有答案,但是想关注这个话题

答案 3 :(得分:-1)

我解决:

在config / app.php

我更改为:

'asset_url'=> env('ASSET_URL','https://appcreated.herokuapp.com'),