如何在Heroku上部署静态Web应用程序

时间:2018-10-02 01:04:00

标签: php heroku

我遵循了类似主题(https://stackoverflow.com/a/17531897/4388482)的回答。好吧,我的应用程序已部署在Heroku上,但效果不佳。我收到以下警告

  

您的项目仅包含“ index.php”,没有“ composer.json”。   不推荐使用“ index.php”将应用程序类型声明为PHP,因为它可能导致意外行为。

也许我需要安装一些东西吗?


更新

项目结构最初是这样的:

Project structure was initially this

我做了以下事情:

  • 已安装 PHP 5 composer
  • 我将 package.json 重命名为 composer.json ,并删除了 package-lock.json
  • 键入“ composer update”命令。我收到“没有安装或更新”的消息。
  • 已将供应商添加到gitignore。将更改推送到heroku。

我收到以下警告

  1.   

    您的'composer.lock'已过期!

  2.   

    在项目中找到Composer供应商目录!

1 个答案:

答案 0 :(得分:2)

Heroku的投诉是regarding this folder

作为记录,当前此文件夹的内容为:

bootstrap
fontawesome-free
jquery-easing
jquery

这里发生的是某人已将依赖项提交到您的版本控制,这不是一个好习惯。它可以照原样工作,但是升级不是很容易,尤其是因为您无法轻易看到当前的版本。

有三种解决方法。

  1. 通过搜索Packagist来确定它们是否是PHP依赖项。 Bootstrap有 个Composer依赖项,但是您需要查看所使用的版本是否可用(或是否可以升级到可用的版本)。

  2. 通过搜索NPM来确定这些是否是JavaScript依赖项。我想知道如果您的package.json的内容已被覆盖,是否值得检查。对于它的价值,我通常会考虑将这些候选库用于JavaScript库而不是PHP,但是会为您做些有用的事情。

  3. 选择将这些依赖项保留在现有vendor文件夹中。它将起作用,但是由于已经说明的原因,它并不理想。

在后两种情况下,您可能会因此而放弃一个composer.json文件,应该将其提交到存储库中。

{
  "require": {
  }
}

此后,您可以尝试使用composer install,以查看它是否会在空的依赖项列表上生成.lock文件。如果确实产生了,那么您也应该提交。