我使用名为index.html的索引文件开发了一个纯前端应用程序。每次我推送到heroku,我需要将其重命名为index.php,以告诉heroku使用php。有没有其他方法来声明我想要什么类型的服务器?这样我就可以将文件保存为html文件了吗?
答案 0 :(得分:5)
您也可以将空composer.json
放入项目中,以使Heroku将您的项目视为PHP项目。
index.php
优先于index.html
来自Apache在Heroku上使用的默认DirectoryIndex
指令;它与您的浏览器无关。要更改它,您可以将.htaccess
DirectoryIndex index.html
放入您的应用程序。
如果您只想要静态网站的原始性能,那么使用Nginx也是个好主意。默认配置应该合理用于您的目的,因此向您的项目添加Procfile
和web: vendor/bin/heroku-php-nginx
以及空composer.json
(并且没有index.php
)并且你很好去。
另请参阅https://devcenter.heroku.com/articles/php-support和https://devcenter.heroku.com/articles/custom-php-settings了解详情。
答案 1 :(得分:2)
您可以使用node.js;
执行简单的ExpressJS应用假设您的项目文件夹有一个名为public
的子文件夹,
var express = require('express');
var app = express();
app.use('/', express.static(__dirname + '/public'));
var port = Number(process.env.PORT || 5000);
app.listen(port, function() {
console.log('Your files will be served through this web server')
});
将此代码保存在app.js中,将您的静态文件放在public
文件夹下,并准备Procfile
最终文件夹结构将是;
yourproject
--public/
----your staticfiles
--app.js
--Procfile
Procfile
将是;
web: node app.js
部署您的项目。当您请求静态文件时; .../index.html
,index.html
将在公共文件夹
答案 2 :(得分:-1)
添加一个名为index.php的空文件,这将由heroku使用,但index.html将由浏览器确定优先级。