我刚刚完成了 Udemy 课程,在 localhost 上一切正常。
为了在 Heroku 上部署,我在根文件夹中添加了一个额外的 index.php 文件,因为 Heroku 无法“看到”公共文件夹中的 index.php 文件。所以我只是简单地添加include 'public/index.php';到新的 index.php 文件中。到目前为止,该站点现在已加载。
但是,导航栏中的链接不再起作用。您将在下面的导航栏代码中看到,我在我的配置文件中使用了变量 URLROOT(这在 localhost 中有效),但是由于我添加了 index.php,事情发生了变化,并且在单击时出现 500 Internal Server Error链接。
<div class="collapse navbar-collapse" id="navbarsExampleDefault">
<!-- home and about page links on left of navbar -->
<ul class="navbar-nav mr-auto">
<li class="nav-item">
<a class="nav-link" href="<?php echo URLROOT; ?>">Home</a>
</li>
<li class="nav-item">
<a class="nav-link" href="<?php echo URLROOT; ?>/pages/about">About</a>
</li>
</ul>
<!-- register and login links on right of navbar -->
<!-- Contains php if to show/hide navbar options -->
<ul class="navbar-nav ml-auto">
<?php if (isset($_SESSION['user_id'])) : ?>
<li class="nav-item">
<a class="nav-link" href="#">Welcome, <?php echo $_SESSION['user_name']; ?></a>
</li>
<li class="nav-item">
<a class="nav-link" href="<?php echo URLROOT; ?>/users/logout">Logout</a>
</li>
<?php else : ?>
<li class="nav-item">
<a class="nav-link" href="<?php echo URLROOT; ?>/users/register">Register</a>
</li>
<li class="nav-item">
<a class="nav-link" href="<?php echo URLROOT; ?>/users/login">Login</a>
</li>
<?php endif; ?>
</ul>
</div>
我尝试/app在 URLROOT 之后添加到文件路径的前面,因为这是存储所有内容的文件夹。但我仍然得到错误。
我还尝试将 /app 添加到配置文件中 URLROOT 变量的末尾,但这完全破坏了事情。
配置文件...
<?php
// App root
define('APPROOT', dirname(dirname(__FILE__)));
// URL Root
define('URLROOT', 'http://localhost/php-share-posts');
//Site name
作为一个曲线球,有一个 htaccess 文件可能在其中发挥作用,停止读取 app 文件夹内的路径?这是一个猜测,很可能是错误的。HTAccess 文件...
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ public/ [L]
RewriteRule (.*) public/$1 [L]
</IfModule>
我究竟做错了什么?
海绵宝宝撒
斯蒂芬大帝