Я думаю, что вышеупомянутый ответ хорош, но поскольку CI динамически пишет URL-адреса, я предпочитаю этот метод. Кроме того, я думаю, что это помогает с написанием лучшего кода шаблона. (Я проверил это именно на MAMP.)
Для одного, установите файл .htaccess на следующее:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php|assets|robots\.txt)
RewriteRule ^(.*)$ index.php?/$1 [L,QSA]
Создать новый помощник в application/helpers
. Я вызываю шахту assets_helper.php
, но называю ее полезной. Поместите этот код в этом хелперов файле:
<?php if (! defined('BASEPATH')) exit('No direct script access allowed');
if (! function_exists('asset_url()')) {
function asset_url() {
echo base_url().'assets/';
}
}
Добавить помощник в файл автозагрузку в config/autoload.php
а-ля
$autoload['helper'] = array('url', 'assets');
(Вы, возможно, не уже есть url
помощник активирован, но часто.)
А также добавить маршрут к папке активов (в config/routes.php
):
$route['assets/(:any)'] = 'assets/$1';
Теперь, когда вы хотите добавить css, или js или изображения, вам просто нужно положить <? assets_url(); ?>
в код шаблона.
<img src="<? asset_url(); ?>images/logo.png" width="100" height="100" />
или
<link rel="stylesheet" href="<? asset_url(); ?>css/house.css">
Я обновил мой вопрос, чтобы более точно и кратко описать мою проблему. Я попытался добавить свой код в свой .htaccess, но он, похоже, не работал. Похоже, что MAMP Pro больше не читает мой файл .htaccess и вместо этого использует некоторую кешированную версию или что-то в этом роде. – themarkappleby
Попробуйте отключить кеширование в тестовой среде и включите его только тогда, когда ваш проект готов к развертыванию. Установите PHP Extension [Cache] на '--', чтобы предотвратить эти неприятности :). – 2013-03-06 16:37:10
Мой PHP-кеш отключен в MAMP Pro - это не одно и то же? – themarkappleby