cakephp index.php,.htaccess – CakePHP和AngularJs在路由协调中:htaccess规则将用户发送到index.html或bootstrap index.php...

我正在构建一个应用程序,Cake

PHP作为我的后端,AngularJS作为我的前端框架.

我需要在与前端代码相同的服务器上安装CakePHP,以便它可以提供我需要的JSON.

通常在CakePHP中,一个有webroot文件夹,除了js / css / less / *之外,还有一个挂钩到CakePHP的index.php.但是,添加AngularJS会增加一些复杂性,因为我还想要一个index.html.

这是我想要的控制流程:

>如果用户访问domain.com/,则显示index.html(但路由保持’* .com /’!)

>如果用户访问domain.com/#/home,请显示index.html并让Angular处理哈希路由

>如果用户访问domain.com/about(假设有关页面,html和所有内容,由CakePHP提供),请将它们发送到index.php.

>如果我使用domain.com/users/list.json进行AJAX调用,请使用index.php以便CakePHP可以为JSON提供服务.

所以我的想法是我可以.htaccess规则处理这个.但我不太清楚要写什么.

现在我有:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d #if it's not an existing directory

RewriteCond %{REQUEST_FILENAME} !-f #if it's not an existing file

RewriteRule ^(.*)$index.php?/$1 [QSA,L] #everything else, send to CakePHP

有任何想法吗?

它会像在RewriteRule / index.html [L]之类的最后一个条件之后添加一行一样简单吗?

另外,请随意使用CakePHP和AngularJS建议替代设置.

谢谢!

编辑:我想提供更多关于我用于AngularJS的构建系统的信息,以及为什么它只是从’home.ctp’视图提出问题.

我正在使用ng-boilerplate,它使用karma进行测试,并使用grunt进行连接,uglifying以及在index.html中包含脚本.

我认为构建系统真的很漂亮,因为它允许我保持模块化结构.

以下是典型ng-boilerplate前端的目录结构:

ng-boilerplate/

|- build/ # Development build

| | index.html

| | assets/

| |

| |- angular/

|- grunt-tasks/

|- karma/

|- src/ # Actual source code I'm editing

| |- app/

| | |-

| |- assets/

| | |-

| |- common/

| | |-

| |- less/

| | |- main.less

|- vendor/

| |- angular-bootstrap/

| |- bootstrap/

| |- placeholders/

|- build.config.js # Build configuration specific to app

|- Gruntfile.js

|- module.prefix

|- module.suffix

|- package.json

这使得工作流程变得困难,因为我必须采用最新的“构建”(在开发期间)并在每次编辑index.html时手动将index.html文件放在home.ctp中.

这就是为什么我的头脑首先去了.htaccess.虽然,我明白这个想法有其自身的局限性,如果我想直接从CakePHP提供一个页面而不是将AngularJS带入图片中.

也许我可以配置构建系统将index.html放在CakePHP的home.ctp视图中.有关此解决方案的任何想法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值