Php 对每个客户端包含使用base_url()值吗?
我使用CodeIgniter,我喜欢它,但我不知道这样做是否真的值得:Php 对每个客户端包含使用base_url()值吗?,php,codeigniter,Php,Codeigniter,我使用CodeIgniter,我喜欢它,但我不知道这样做是否真的值得: <link rel="stylesheet" href="<?php echo base_url(); ?>css/main.css" /> <script src="<?php echo base_url(); ?>js/jquery.js"></script> <script src="<?php echo base_url(); ?>js/f
<link rel="stylesheet" href="<?php echo base_url(); ?>css/main.css" />
<script src="<?php echo base_url(); ?>js/jquery.js"></script>
<script src="<?php echo base_url(); ?>js/functions.js"></script>
...
<img src="<?php echo base_url(); ?>images/dolphin.png" />
如果您认为可能需要将应用程序移动到其他子文件夹(而不是其他子域),则可能值得使用
,但是如果您可以假设应用程序将始终安装在其自己的域或子域上,则一定要取消函数调用,它增加了不必要的混乱,并将更多信息发送到用户浏览器
这取决于您认为应用程序需要做什么。在我看来,您应该始终使用base_url()来定义路径,因为这样可以确保您的路径始终是正确的。如果您认为echo函数太脏,您可以始终使用内置的CodeIgniter之类的模板引擎或一些外部引擎。我只是想添加一些与我相关的东西
- 正如您所提到的,如果您需要在子目录中安装Codeigniter,
/
前导正斜杠当然不起作用。您必须在路径中包含子目录名。就个人而言,这经常出现,因为我们将在子目录中安装重新设计或原型。但是,如果您还没有让CI自动检测到您的基本url(从v2.0.2开始),那么切换到SSL(如果适用的话)会很好
- 将
$config['base\u url']
更改为不包含完整域可能是个坏主意。在我看来,这会破坏应用程序使用base\u url()
函数发送的电子邮件中的链接和引用,通常可能会导致意外结果
- 几乎所有需要使用基本url的HTML标记,如
js/functions.js”>
这通常是说/
的冗长方式,但可以处理子目录问题
这看起来可能是浪费时间,但当您有许多使用相同代码库的安装时,配置越少越好。作为可读性和灵活性之间的折衷,我将执行以下操作:
// constants.php
$base_uri = $_SERVER['SCRIPT_NAME']; // Always index.php (bootstrap), right?
$base_uri = str_replace('index.php', '', $base_uri);
define('BASE_URI', $base_uri);
它不必发送不必要的混乱。您可以将$config['base\u url']
值配置为/
,而不是将域包含在您的/config/config.php
@Matt:如果您使用base\u url()
或任何其他使用它的函数发送电子邮件,这可能是一个非常糟糕的主意(链接、图像等)。可能还有其他陷阱,但我现在想不出任何陷阱,但我认为这可能会导致一些意想不到的结果。我不认为OP与PHP源代码有关,但HTML输出(“给页面增加了很多权重”
)。这仍然会打印完整的基本url,事实上,如果您在url中使用index.php
(这是site\u url()
和base\u url()
-site url打印index.php
部分之间的细微差别)。通常,短标记也不受欢迎。
// constants.php
$base_uri = $_SERVER['SCRIPT_NAME']; // Always index.php (bootstrap), right?
$base_uri = str_replace('index.php', '', $base_uri);
define('BASE_URI', $base_uri);
<script src="<?php echo BASE_URI; ?>js/functions.js"></script>
<link rel="stylesheet" href="<?= site_url('css/main.css') ?>" />
<script src="<?= site_url('js/jquery.js); ?>"></script>
<script src="<?= site_url('js/functions.js); ?>"></script>
...
<img src="<?= site_url('images/dolphin.png'); ?>" />