情報が古い可能性があります。
環境
- FuelPHP 1.8
- Apache 2.4
なお、今回のプロジェクトフォルダは sample-fuel-project
とします。
.htaccess を作成する
プロジェクトフォルダ直下に .htaccess を作成します。
/sample-fuel-project/.htaccess
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^(/)?$ /sample-fuel-project/public/index.php/$1 [L]
RewriteCond ${REQUEST_FILENAME} !-f
RewriteCond ${REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /sample-fuel-project/public/index.php/$1 [L]
</IfModule>
RewriteRule を使用して、URLを書き換えます。
これにより、http://ドメイン/sample-fuel-project/
にアクセスしても、 public
を見にいくようになります。
asset.php を作成する
/sample-fuel-project/fuel/core/config/asset.php
からファイルをコピーして作成します。
core
配下のファイルを編集する記事が多いですが、app/config
配下に作成すればコアの設定を上書きしてくれるのでそちらのほうがいいです。
また、NetBeans で内部サーバを使用している場合や、Virtual Host を使用している場合には設定が逆に邪魔になるので、本番環境のみ適用したいので production
配下に asset.php
を作成しました。
/sample-fuel-project/fuel/app/config/production/asset.php
'url' => \Config::get('base_url') . 'public/',
.htaccess の作成だけでは http://ドメイン/sample-fuel-project/
にアクセスしたとき、Assetクラスを使って読み込んだCSSファイル・画像ファイル・JSファイルの読み込みができないので、url
に base_url
と public
を連結して指定します。
上書きしない項目は必要ないので、実際 asset.php
は以下の記述だけで構いません。
<?php
/**
* Part of the Fuel framework.
*
* @package Fuel
* @version 1.8
* @author Fuel Development Team
* @license MIT License
* @copyright 2010 - 2016 Fuel Development Team
* @link http://fuelphp.com
*/
/**
* NOTICE:
*
* If you need to make modifications to the default configuration, copy
* this file to your app/config folder, and make them in there.
*
* This will allow you to upgrade fuel without losing your custom config.
*/
return array(
/**
* URL to your Fuel root. Typically this will be your base URL:
*
* \Config::get('base_url')
*
* These MUST include the trailing slash ('/')
*/
'url' => \Config::get('base_url') . 'public/',
);
config.php を作成する
config.php の設定はおこなわなくても、url から public を削除して動作させることができました。環境によって確認してください。
ただし http://ドメイン/sample-fuel-project/public
にアクセスすると CSSファイル・画像ファイル・JSファイルが読み込めません。
/sample-fuel-project/fuel/app/config/config.php
を確認してみます。
// 'base_url' => null,
デフォルトだと base_url
にはなにも指定されていません。
この場合、base_url
は自動で設定されますが、手動で設定することもできます。
この設定も NetBeans で内部サーバを使用している場合や、Virtual Host を使用している場合には必要ないので、本番環境のみ適用したい場合は production
配下に config.php
を作成します。
/sample-fuel-project/fuel/app/config/production/config.php
<?php
/**
* Part of the Fuel framework.
*
* @package Fuel
* @version 1.8
* @author Fuel Development Team
* @license MIT License
* @copyright 2010 - 2016 Fuel Development Team
* @link http://fuelphp.com
*/
return array(
/**
* base_url - The base URL of the application.
* MUST contain a trailing slash (/)
*
* You can set this to a full or relative URL:
*
* 'base_url' => '/foo/',
* 'base_url' => 'http://foo.com/'
*
* Set this to null to have it automatically detected.
*/
'base_url' => '/sample-fuel-project/',
);
このように指定すると、CSSの読み込みは以下のようになります。
<link type="text/css" rel="stylesheet" href="/sample-fuel-project/public/assets/css/style.css" />
指定してない場合はこんな感じです。
<link type="text/css" rel="stylesheet" href="http://ドメイン/sample-fuel-project/public/assets/css/style.css" />
production
や development
などの環境の切り替えはこちらを参考にしてください。