2014-05-09 196 views
2

我使用名爲index.html的索引文件開發純前端應用程序。每次我推送到heroku,我需要將其重命名爲index.php,以告訴heroku使用php。是否有另一種方法來聲明我想要的服務器類型?這樣我就可以將我的文件保存爲html文件?是否可以將index.html推送到heroku?

+0

你不能直接提供靜態文件,但你可以通過簡單的node.js應用程序來管理它。看到我的答案[這裏](http://stackoverflow.com/questions/23564500/is-it-possible-to-push-a-index-html-to-heroku/23564786#23564786) –

回答

5

您也可以將一個空的composer.json放入您的項目中,以使Heroku將您的項目視爲一個PHP項目。

index.php優於index.html來自Apache在Heroku上使用的默認指令DirectoryIndex;它與你的瀏覽器無關。要更改它,您可以將.htaccessDirectoryIndex index.html放入您的應用程序中。

如果你只是想要靜態網站的原始性能,那麼使用Nginx也可能是一個好主意。默認配置應該是合理的爲您的目的,所以添加Procfileweb: vendor/bin/heroku-php-nginx您的項目連同一個空的composer.json(和index.php),並且你很好去。

有關更多詳細信息,另請參閱https://devcenter.heroku.com/articles/php-supporthttps://devcenter.heroku.com/articles/custom-php-settings

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將在公共文件夾下提供

-1

添加一個名爲index.php的空文件,這將被heroku使用,但index.html將由瀏覽器優先。